【发布时间】:2011-08-18 20:46:05
【问题描述】:
我正在使用 Python 和 Tkinter 为我正在编写的程序创建 GUI,但遇到了几个问题。
我在一个从 Frame 继承的对象中有三个从 LabelFrame 继承的对象。 LabelFrame 后代之一是两列对应的 Label 和 Entry 对象。
问题在于标签和条目对的数量不等,而且屏幕上的大小可能会超出范围。我需要一种为此 LabelFrame 制作滚动条的方法,以便所有内容都适合屏幕。我尝试了各种制作 Scrollbar 对象的方法,但似乎没有任何效果。如何将滚动条绑定到此框架?
此外,当调用 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)
如果有人能帮助解决这些问题,我将不胜感激。
另外,这个问题似乎有点薄,但我不知道该补充什么。不要犹豫,询问更多信息(但要具体)。
谢谢!
【问题讨论】: