【发布时间】:2017-11-28 19:53:27
【问题描述】:
我有一个 Python Tkinter GUI 类如下:
import Tkinter as tk
class AppClient(tk.Frame):
def __init__(self, master):
error_class = ErrorClass()
self.val_error_code = error_class.error_message
tk.Frame.__init__(self, master)
self.pack()
##Frame for error message display
error_frame = tk.Frame(self, highlightbackground="violet", highlightcolor="violet", highlightthickness=1, width=600, height = 60, bd= 0)
error_frame.pack(padx = 10, pady = 5, anchor = 'w')
## error code: Label and Entry
tk.Label(error_frame, text = 'Error message').grid(row = 0, column = 0, sticky = 'w')
self.error_code = tk.Entry(error_frame, background = 'white', width = 27)
self.error_code.grid(row = 0, column = 1, sticky = 'w', padx = 5, pady = 5)
def update_error_messsage(self):
self.error_code.delete(0, 'end')
self.error_code.insert(0, self.val_error_code)
if __name__ == '__main__':
root = tk.Tk()
app_client = AppClient(root)
app_client.mainloop()
我想使用函数update_error_message 动态更新输入字段error_code。问题是,错误消息从另一个类 ErrorClass() 不断更新,我通过变量 error_message 将错误消息接收到我的 AppClient 类。
当变量error_message 的值在另一个类中更新时,我如何更新error_code 条目(ErrorClass())
【问题讨论】:
-
如果问题与使用两个类有关,您需要给我们一个包含两个类的minimal reproducible example。
-
我认为我为另一个问题发布的答案可能会对您有所帮助。我举了一个例子,说明如何与另一个班级的班级互动。看我的回答here。
-
@Bryan Oakley:我更新了 ErrorClass()。希望这会有所帮助
-
我在
ErrorClass中没有看到您尝试与AppClient类进行交互的任何地方。如果我将这两个类放在一个文件中并尝试运行它们,它不会重复您的问题。如果我们无法复制问题,我们就很难推荐修复方法。 -
我的ErrorClass其实包含很多代码。我无法全部展示。这是一个 TFTP 客户端实现,在 ErrorClass 中我从 TFTP 服务器接收错误消息。我想在收到错误消息时动态更新 AppClient Tkinter GUI 中的错误消息。这些类位于单独的文件中。不在同一个文件中。
标签: python-2.7 class oop tkinter