【问题标题】:Tkinter label text does not update/overwriteTkinter 标签文本不更新/覆盖
【发布时间】:2018-10-26 04:29:50
【问题描述】:
from Tkinter import *

self.btn_run = Button(window, text="Run Model", command=self.clicked_run)
self.btn_run.grid(column=2, row=6)
self.lbl_finish = Label(window, text="")
self.lbl_finish.grid(column=2, row=7)


# Submit button for run model
def clicked_run(self):        
    self.lbl_finish.configure(text="")

    if len(train_SKU) == 0 or len(test_SKU) == 0:
        tkMessageBox.showinfo('ERROR', 'Train or Test is empty!')
    else:
        train_model() # trains the machine learning model
        self.lbl_finish.configure(text="Finished!")

基本上,我有一个“运行模型”按钮来运行我的机器学习模型。完成后,我想要一条写着“完成!”的文字。按钮下方。当再次按下“运行模型”按钮时,我想要“完成!”仅在 ML 模型完成时清除和显示的文本。然而,现在,在第一个“完成!”之后出现,即使再次按下“运行模型”按钮也不会消失。

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    您可以使用 StringVariable 并更新窗口

    import tkinter as tk
    from time import sleep
    
    window = tk.Tk()
    
    var = tk.StringVar()
    var.set('')
    lbl_finish = tk.Label(window, textvariable=var)
    lbl_finish.grid(column=2, row=7)
    
    def clicked_run():
        var.set('')
        window.update()
        sleep(5)
        var.set('Finshed')
    
    btn_run = tk.Button(window, text="Run Model", command=clicked_run)
    btn_run.grid(column=2, row=6)
    
    if __name__ == '__main__':
        window.mainloop()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-29
      • 1970-01-01
      • 2014-08-01
      • 2014-06-27
      • 2021-10-01
      • 2012-05-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多