在正确设置滚动条方面遇到问题。以下代码呈现2个列表框,一个在另一个上面,以及2个滚动条。但是,滚动条跨越两个框的整个高度,而scrollbar2只是第二个列表框(lb2)。我需要滚动条和lb是相同的高度,并且scrollbar2和lb2是相同的高度。以下是我目前拥有的http://tinyurl.com/mxo9llb
的屏幕截图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)
答案 0 :(得分:1)
对于这样的布局,最好使用grid
而不是pack
。除非您添加一些额外的帧以帮助布局,否则您无法使用pack
执行所需操作。
使用pack,您需要创建两个额外的框架:一个用于上半部分,一个用于下半部分。然后,在框架内,您可以将每个滚动条放在右侧,将列表框放在左侧。最后,将框架堆叠在一起。
使用网格,您可以将每个列表框/滚动条对放在不同的行上,列表框位于第0列,滚动条位于第1列。