我正在使用Python和Tkinter为我正在编写的程序创建一个GUI,我遇到了一些问题。
我有三个从LabelFrame派生的对象在一个从Frame派生的对象中。LabelFrame子代之一是对应的Label和Entry对象的两列。
问题是,标签和条目对的数量不尽相同,而且屏幕上的标签和条目对可能不尽相同。我需要一种方法为这个LabelFrame制作一个滚动条,这样所有的东西都可以放在屏幕上。我试过各种方法来制作一个滚动条对象,但似乎没有什么效果。如何将滚动条绑定到此框架?
另外,当调用load_message()方法时,我需要能够刷新或重新加载这个LabelFrame,但它只是在旧对的基础上重新显示新对(因此,当新集中的对较少时,旧集仍在底部可见)。我试过使用grid_forget(),但要么没有改变,要么整个框架都不显示。我怎么能忘记这个显示器,然后重新播放它?
这是这个类的代码:class freq_frame(LabelFrame):
def __init__(self, master = None, text = 'Substitutions'):
LabelFrame.__init__(self, master, text = text)
self.grid()
def load_message(self):
self.frequency = get_freq(message)
self.create_widgets()
def create_widgets(self):
self.label_list = [Label(self, text = get_label(char, self.frequency[char]), justify = LEFT) for char in self.frequency.keys()]
self.entry_list = [Entry(self, width = 1) for char in self.frequency.keys()]
for n in range(len(self.label_list)):
self.label_list[n].grid(column = 0, row = n)
for n in range(len(self.entry_list)):
self.entry_list[n].grid(column = 1, row = n)
如果有人能帮助解决这两个问题,我将不胜感激。
另外,这个问题似乎有点小,但我不知道该补充什么。不要犹豫,要求更多的信息(但要具体)。
谢谢!