2017-07-17 76 views
0

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

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()

回答

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) 
+0

这是比我的文章更好的答案,但你需要包括这两个,使其工作得很好。 –

0

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

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

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