簡體   English   中英

實時更新Python Tkinter標簽

[英]Updating Python tkinter label in realtime

循環開始 ,我想在python中更新標簽。 可悲的是我得到了錯誤

File "mygui.py", line 19, in <module>
GUI.user_said("General Kenobi")
File "mygui.py", line 16, in user_said
self.my_label['text'] = self.label_text
File "/usr/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/__init__.py", line 1486, in __setitem__
self.configure({key: value})
File "/usr/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/__init__.py", line 1479, in configure
return self._configure('configure', cnf, kw)
File "/usr/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/__init__.py", line 1470, in _configure
self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
_tkinter.TclError: invalid command name ".!label"

這根本對我沒有幫助...我的代碼:

from tkinter import *

class MyGUI:
"""A simple class"""

def __init__(self):
    self.__main_window = Tk()
    self.label_text = "Hello There"
    self.my_label = Label(self.__main_window, text=self.label_text)
    self.my_label.pack()
    self.__main_window.mainloop()

def user_said(self, users_request):
    """Returns what the user says"""
    self.label_text = "You said:\n{}\n\n".format(users_request)
    self.my_label.config(text=self.label_text)

GUI = MyGUI()
GUI.user_said("General Kenobi")

如果有人幫助我找到解決問題的辦法,我感到非常高興。

由於MyGUI.__init__調用self.__main_window.mainloop() ,因此直到主窗口被銷毀后它才返回。 因此,當您調用GUI.user_said("General Kenobi") ,所有小部件都不再存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM