我尝试在tkinter中创建我的文本小部件的更新。
def affichage_update ():
with open('archives/monitor1_loc35L.txt') as monitor1, open('archives/monitor2_loc35L.txt') as monitor2:
s= Scrollbar(generalites)
T= Text(generalites,bg='powder blue',width=450,height=350,font=('arial',14,'bold'))
s.pack(side=RIGHT, fill=Y)
T.pack(side=LEFT, fill=Y)
s.config(command=T.yview)
T.config(yscrollcommand=s.set)
while True:
line1 = monitor1.readline()
if len(line1) == 0:
break
line1 = line1.strip().split()
line2 = monitor2.readline()
line2 = line2.strip().split()
T.insert(END, f'{line1[0]:15}\t {line1[1]:10}\t\t {line2[1]:10}\n')
T.after(1000, affichage_update)
affichage_update()
例如,我希望每1秒找到一个自动更新我的Text小部件内容的解决方案 谢谢
答案 0 :(得分:0)
我的回答在这里可以为您提供两种帮助。
向您展示一个最小的示例。
提供有关如何使用after()
的详细信息。
请以后使用MCVE提问。您将需要导入一个根窗口和重现问题所需的最少代码。
此示例应有所帮助:
import tkinter as tk
generalites = tk.Tk()
s = tk.Scrollbar(generalites)
T = tk.Text(generalites)
s.pack(side="right", fill="y")
T.pack(side="left", fill="y")
s.config(command=T.yview)
T.config(yscrollcommand=s.set)
def affichage_update():
with open('archives/monitor1_loc35L.txt') as monitor1, open('archives/monitor2_loc35L.txt') as monitor2:
while True:
line1 = monitor1.readline()
if len(line1) == 0:
break
line1 = line1.strip().split()
line2 = monitor2.readline()
line2 = line2.strip().split()
T.insert("end", f'{line1[0]:15}\t {line1[1]:10}\t\t {line2[1]:10}\n')
T.after(1000, affichage_update)
affichage_update()
generalites.mainloop()
答案 1 :(得分:0)
我的代码很长,我已将其最小化: 普通人是笔记本的标签 所以我想我不能写最后一行:generalites.mainloop() 因为我的代码还没有结束 在第一张图片中,我必须将数据写入labelframe add data into labelframe
,我将接收信息并将其通过文本文件写入文本 喜欢这张照片 data in Text widget