我想用一些刷新每個給定時間間隔的數據填充我的屏幕。我使用的是Python3,主題tkinter。每次我的屏幕更新時,我都會在屏幕上看到每個標籤的灰色閃爍。有沒有辦法避免這種情況? P.S:我正在調用'after'方法來刷新數據。在ttk GUI更新過程中令人討厭的灰色閃爍
更新:下面是一些示例代碼:
def button1Click(self):
self.top = Toplevel(width=600,height=400)
self.top.title("XYZ ORGANIZATION")
self.frame1 = Frame(self.top,bg='#009999')
self.frame1.pack()
self.noOfEmp = Label(self.frame1,text = "Number_Of_Employees : ", font =('Verdana',9, 'bold'),bg='#009999',fg = '#000000')
self.noOfEmp.grid(row=1,column=0,sticky=W,padx=0,pady=5)
self.TeamLabel = Label(self.frame1,text = "Team Name : ", font =('Verdana',9, 'bold'),bg='#009999',fg = '#000000')
self.TeamLabel.grid(row=2,column=0,sticky=W,padx=0,pady=5)
self.text = Text(self.frame1, bg='#009999')
self.text.grid(row=8,columnspan=17)
self.old_emp = 0
self.EFile = open('/abc','r').readlines()
for line in self.EFile:
if line.startswith('EmpTotal:'):
self.Tot_Emp = int(line.split()[1])
break
t1 = threading.Thread(target=self.__make_layout, args =())
t1.daemon = True
t1.start()
t2 = threading.Thread(target=self.ProcEmp,args =())
t2.daemon = True
t2.start()
def self.__make_layout:
self.CLabelVal = Label(self.frame1,text = CSpace, font=('Verdana',9),bg='#009999',fg = '#000000')
self.MLabelVal = Label(self.frame1,text = MSpace , font =('Verdana',9),bg='#009999',fg = '#000000')
self.Label1Val.grid(row=4,column=1,sticky=W+E+N+S,padx=5,pady=5)
self.Label2Val.grid(row=5,column=1,sticky=W+E+N+S,padx=5,pady=5)
self.frame1.after(5000,self.__make_layout)
可能有一種方法。沒有看到重複問題的代碼,我懷疑有什麼方法可以給你一個有用的答案。請參閱http://www.stackoverflow.com/help/mcve。 –
添加到您的問題,你可以得到的*最簡單*的代碼,顯示你的問題。同上Bryan的答案。 –
我使用'after'填充和刷新每隔2秒的數據間隔。所以每次在我的GUI上更新數據時,我都會看到一些灰色背景塊用於輸出數據。由於每2秒顯示不同的數字,所以灰色閃爍不斷出現。 – Dee