首页 > 解决方案 > 如何将滚动条附加到标签框架内的框架

问题描述

我这里有这几行代码,它们放在frame里面labelframe,我想附加scrollbarframe列表框以滚动。

滚动条不能很好地附加到framelistbox它下面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()

标签: pythontkinter

解决方案


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

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

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

由于滚动条未激活,因此在以下屏幕截图中有点难以看到,但您可以看出滚动条位于列表框的右侧。

在此处输入图像描述


推荐阅读