如何将滚动条附加到labelframe内部的框架

时间:2019-03-25 14:24:22

标签: python tkinter

我这里有几行代码将frame放在labelframe内,我想将scrollbar附加到frame上,以便列表框滚动。

滚动条不能很好地连接到frame上,而listbox下方的listbox上却没有。我在这个网站上进行了搜索,所有必需的答案都必须将scrollbar附加到frame上,并且没有得到您想要的结果。

import tkinter as tk

root = tk.Tk()
root.geometry("400x400")


lab = tk.LabelFrame(root, text="MY LABELFRAME")
lab.pack(fill=tk.BOTH, expand=True)

 # this is the frame i have created to insert the listbox
fr = tk.Frame(lab, width=200, height=200, bg="brown")
fr.place(x=100, y=100)


list1 = tk.Listbox(fr, width=20, height=15)
list1.pack(fill=tk.BOTH, expand=True)

scrollbar = tk.Scrollbar(fr, orient='vertical')
scrollbar.pack(fill=tk.Y, side=tk.RIGHT)
list1.configure(yscrollcommand=scrollbar.set)
scrollbar.configure(command=list1.yview)


root.mainloop()

1 个答案:

答案 0 :(得分:0)

如果您想要左侧的列表框和右侧的滚动条,那正是应该打包它们的方式。通过未明确设置侧面,pack会将列表框放在框架的顶部,仅在滚动条的底部留出空间。

解决方案是在打包列表框时显式提供side属性:

list1.pack(fill=tk.BOTH, expand=True, side="left")

由于滚动条未处于活动状态,因此在以下屏幕截图中很难看到它,但是您可以确定滚动条位于列表框的右侧。

enter image description here