【发布时间】:2020-02-17 03:21:42
【问题描述】:
我从另一个问题中获得了大部分附加代码。我正在使用 Python 3.8。包管理器似乎很容易将滚动条小部件添加到列表框小部件。但是,我正在使用网格管理器。我无法让垂直滚动条正常工作。
当您运行此代码时,会出现一个垂直滚动条,但它并没有正确地物理连接到列表框小部件。顺便说一句:我让水平滚动条正常工作。
from tkinter import *
master = Tk()
listbox = Listbox(master)
scrollbar = Scrollbar(master, orient=VERTICAL)
scrollbar.grid(row=2, rowspan=50, column=40, sticky=N + S)
for i in range(50):
listbox.insert(END, str(i))
listbox.grid(sticky="news")
scrollbar.config(command=listbox.yview)
mainloop()
【问题讨论】:
-
使用
pack()将Listbox和Scrollbar放入Frame,然后使用grid()将此Frame放入窗口 -
你不必为
Scrollbar使用rowspan=50- 即使你在Listbox中放入50 行文本,Listbox也只使用一行。 -
使用
listbox.grid(row=2, ...) -
你忘了
tk.Listbox(..., yscrollcommand=scrollbar.set) -
我不知道您为什么要在我的答案中添加图片。我将其添加到您的问题中。
标签: python tkinter listbox grid pack