Python列表框在点击后展开和隐藏

时间:2017-07-17 11:08:56

标签: python tkinter listbox

我在下面有以下示例代码。有没有办法扩展列表框,单击时显示100个数字中的10个?选择其中一个数字时,列表框是否会再次隐藏其他数字?



from tkinter import *

root = Tk()

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

listbox = Listbox(root)
listbox.pack()

for i in range(100):
    listbox.insert(END, i)

# attach listbox to scrollbar
listbox.config(yscrollcommand=scrollbar.set, height = 1)
scrollbar.config(command=listbox.yview)

mainloop()




3 个答案:

答案 0 :(得分:0)

您可以将事件处理程序连接到<Button-1>信号,并且每次都切换列表框高度:

def listbox_clicked(event):
    listbox = event.widget
    if listbox['height'] == 1:
        listbox.config(height=10)
    else:
        listbox.config(height=1)

listbox.bind('<Button-1>', listbox_clicked)

答案 1 :(得分:0)

我相信包装选项会有所帮助。

scrollbar.pack(side=RIGHT, fill=Y, expand=True)
listbox.pack(fill=Y, expand=True)

答案 2 :(得分:0)

非常感谢您的帮助,但我需要的只是一个组合框!