我的GUI非常大,因此无法将所有代码都放在这里以使其正常工作。因此,一个普遍的问题是:我试图通过按按钮来更新GUI的所有可用数据,而不破坏窗口并重建窗口。 我当前的方法是“解锁”包含带有可用数据列表的复选框的文本框,并使用以下内容将其删除:
def refreshfunciton(): #called on button push elsewhere
self.Tab1Text.configure(state='normal')
self.Tab2Text.configure(state='normal')
self.Tab3Text.configure(state='normal')
self.Tab4Text.configure(state='normal')
self.Tab5Text.configure(state='normal')
#to unlock the text boxes so changes can be made
#below "Tab1CheckButton" ect are lists established elsewhere
for i in self.Tab1CheckButton:
i.pack_forget()
for i in self.Tab2CheckButton:
i.pack_forget()
for i in self.Tab3CheckButton:
i.pack_forget()
#code going here to update the lists that the checkboxes pull from
self.createCheckBoxes()
#function that creates all the checkboxes above.
#code to lock the text boxes that contain the check boxes.
如果有一个更简单的理由而不破坏GUI并重建它,我很乐意这样做。
答案 0 :(得分:0)
我建议清除列表框/复选框并重写内容:
您可以使用listbox.delete(0,END)
您可以使用checkbox.config(state=DISABLED)
然后,通过数据列表重写和重新调整列表框/复选框,将每个数据值一个接一个地插入for循环中,例如
for i in range(len(data)):
listbox.insert("{}".format(data[i]), END)