0

所以,我正在做其他人所说的:

scrollbar = Scrollbar(frame)

scrollbar.pack(side=RIGHT, fill=Y)

listbox = Listbox(frame, yscrollcommand=scrollbar.set)

listbox.pack()

scrollbar.config(command=listbox.yview)

但似乎滚动条附加到整个框架而不是列表框本身......我唯一能做的就是使用 scrollbar.place() 而不是打包并将其放在列表框旁边,但是它们它只有一个 1 大小的滚动条,它并没有覆盖列表框 Y 条的一部分,这很丑……

有人可以帮忙吗?

谢谢!

4

2 回答 2

2

您确实需要将滚动条附加到框架上——但是您可以轻松地创建一个新框架来仅容纳滚动条和列表框。

例如

myframe=Frame(frame)
myframe.pack(side=RIGHT, fill=Y)
scrollbar = Scrollbar(myframe) 
scrollbar.pack(side=RIGHT, fill=Y)
listbox = Listbox(myframe, yscrollcommand=scrollbar.set) 
listbox.pack()
scrollbar.config(command=listbox.yview)
于 2012-06-07T16:12:11.957 回答
1

小部件不相互连接,它们只占用容器内的空间。如果将滚动条打包在右侧,然后将列表框打包在右侧,它们将显示为附加。您也可以将列表框放在左侧并使其填充水平方向,或者如果它填充两个方向,则可以将其打包在任何地方。

你也可以使用grid代替pack;只需将它们安排在相邻的列中即可。

所以,不要考虑“附加”小部件,考虑将它们放在容器中。

于 2012-06-07T18:26:34.610 回答