如何将我的滚动条附加到我的列表框小部件

时间:2017-11-18 16:49:09

标签: python-3.x tkinter scrollbar

这是我想要的照片:

scrollbar

实际代码:

lb = Listbox(self.master, width=120, height=6)
scrollbar = Scrollbar(self.master, orient="vertical",command=lb.yview)
scrollbar.pack(side="right", fill="y")
lb.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=lb.yview)
lb.place(x=5,y=5)

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用列表框和滚动条创建一个新框架:

kivy==master

或者由于您使用from tkinter import * root = Tk() root.geometry('500x300') frame = Frame(root) frame.place(x = 5, y = 5) # Position of where you would place your listbox lb = Listbox(frame, width=70, height=6) lb.pack(side = 'left',fill = 'y' ) scrollbar = Scrollbar(frame, orient="vertical",command=lb.yview) scrollbar.pack(side="right", fill="y") lb.config(yscrollcommand=scrollbar.set) for i in range(10): lb.insert(END, 'test'+str(i)) root.mainloop() (不推荐),您只需计算滚动条的位置即可。在这种情况下,place将是最好的布局管理器。

答案 1 :(得分:0)

问题是,如果仅使用“放置”位置,则不会出现滚动条。 解决方案是制作两个框架-一个主框架带有一个小部件滚动条, 主框架内的第二个框架,您可以在其中获得列表框。框架可以放置在适当的位置,窗口小部件在框架内带有包或网格。 下面是我的源代码,很完美。

from tkinter import *

root = Tk()
root.geometry('500x300')

frame1 = Frame(root)
frame1.place(x = 10, y = 5,width=100,height=100) # Position of where you would place your listbox
frame1a=Frame(master=frame1)
frame1a.place(x=0,y=0,height=100,width=100)


lb = Listbox(frame1a, width=50, height=6)
lb.grid(row=0,column=0 )

scrollbar = Scrollbar(frame1, orient="vertical",command=lb.yview)
scrollbar.pack(side="right", fill="y")


lb.config(yscrollcommand=scrollbar.set)

for i in range(10):
    lb.insert(END, 'test'+str(i))

root.mainloop()