2014-02-05 38 views
0

在正确设置滚动条时遇到问题。下面的代码呈现2个列表框,一个在另一个之上,2个滚动条。但是,滚动条横跨两个框的整个高度,并且滚动条2仅是第二个列表框(lb2)。我需要滚动条和磅是相同的高度,滚动条2和磅2是相同的高度。下面是我目前有http://tinyurl.com/mxo9llbPython Tkinter - 多个列表框和滚动条

frame = Frame(app,bd=2,relief=SUNKEN) 

scrollbar = Scrollbar(frame, orient="vertical") 
lb = Listbox(frame, width=30, height=10, yscrollcommand=scrollbar.set) 
scrollbar.config(command=lb.yview) 

scrollbar.pack(side="right", fill="y") 
lb.pack(side="top",fill="both", expand=True) 


scrollbar2 = Scrollbar(frame, orient="vertical") 
lb2 = Listbox(frame, width=30, height=10, yscrollcommand=scrollbar2.set) 
scrollbar2.config(command=lb2.yview) 

scrollbar2.pack(side="right",fill="y") 
lb2.pack(side="top",fill="both", expand=True) 

for item in ad_members: 
    lb.insert(END, item) 

for item in ad_members: 
    lb2.insert(END, item) 

frame.pack(side='right',padx=15) 

回答

1

对于这样的布局的截图,你最好使用grid而非pack。除非您添加一些额外的框架来帮助布局,否则您无法使用pack做您想要的。

使用包时,您需要创建两个附加帧:一个用于上半部分,另一个用于下半部分。然后,在框架内,您可以将每个滚动条放在右侧,并将列表框放在左侧。最后,将这些框架打包在一起。

使用网格,您可以将每个列表框/滚动条对放在不同的行上,列表框中的列表框和列中的滚动条位于列中。