【发布时间】:2021-02-20 21:50:39
【问题描述】:
我正在使用 tkinter 为我正在制作的组件清单应用程序创建一个 GUI。 GUI 将打印程序的当前活动列表。我正在为主窗口使用一个类,但在加载新列表后无法显示当前列表。
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.pack()
self.active_list = []
self.dir = os.getcwd()
self.create_window()
在上面的代码中,我将 active_list 初始化为一个空列表。打开新列表时,它会将 active_list 设置为 csv 文件中的新列表。下面的类show_list() 方法在GUI 上的文本框中打印active_list。主要问题是加载新列表时它不会更新。它可以打印在__init__() func 中初始化但似乎无法更新的空 active_list。
def show_list(self):
self.scrlbr1 = tk.Scrollbar(self.master)
self.disp_list = tk.Text(self.master, height=5, width=50)
if not self.active_list:
self.disp_list.insert(tk.END, 'no list loaded')
else:
self.disp_list.insert(tk.END, self.active_list)
self.scrlbr1.pack(side=tk.RIGHT, fill=tk.Y)
self.disp_list.pack(side=tk.LEFT, fill=tk.Y)
我最初的想法是 tk mainloop 函数在创建类时将 active_list 重置为空列表。有人可以建议一些修复吗?谢谢
【问题讨论】:
标签: python list class user-interface tkinter