Tkinter:如何使 tkinter 文本小部件更新?

新手上路,请多包涵

一般来说,我对这个网站和 python 还很陌生,所以请原谅我乱七八糟的代码。我正在尝试使用 Tkinter 界面在 python 中制作一种即时通讯工具。我的学校有一个网络,如果以正确的权限保存在正确的区域,则可以在该网络上交换文件和编辑其他人的文件。

我已经弄清楚了其中的大部分内容,该程序可以保存到文本文件并也可以读取它,但是,包含文本的文本小部件不会自行更新,所有尝试更新的尝试都失败了。任何帮助将不胜感激,因为我似乎无法弄清楚。

 from tkinter import *

master = Tk()
master.geometry("300x200")
e = Entry(master)
e.pack()

def callback():
    f = open("htfl.txt","a")
    f.write(e.get())
    print (e.get())

b = Button(master, text="get", width=10, command=callback)

b.pack()

file = open("htfl.txt","r") #opens file

#print(file.read(1))
a = file.read()
b = file.read()
print(file.read())

T = Text(master, height=9, width=30)
T.insert(END,a)
T.pack()

def update():
    T.insert(END,a)
    T.after(1000, update)

T.after(1000, update)

mainloop()

原文由 douglas rouse 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 448
2 个回答

每次要更新小部件时都必须重新读取文件。例如:

 def update():
    with open("htfl.txt","r") as f:
        data = f.read()
        T.delete("1.0", "end")  # if you want to remove the old data
        T.insert(END,data)
    T.after(1000, update)

原文由 Bryan Oakley 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 T.insert(…) 之后的 T.update() (没有任何参数)对我来说没问题。

原文由 alain 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进