Tkinter滚动条不滚动

时间:2016-03-20 14:37:55

标签: python tkinter

我正在尝试用两个画布和一个滚动条同时创建一个gui,作为另一个项目的测试。我创建了根,两个画布并使用网格方法为每个画布固定了一些标签,并创建了滚动条。

但是,当我运行程序时,滚动条会移动罚款,但窗口的内容根本不会改变,就好像条形图不起作用一样。我通过谷歌搜索我的问题尝试了一些解决方案,但到目前为止我还没有能够解决它。

相关代码是

from tkinter import *
root = Tk()
‪#‎scroll‬
scrollbar = Scrollbar(root)
scrollbar.pack(side=RIGHT, fill=Y)
firstCanvas = Canvas(root, width=200, height=100)
firstCanvas.pack(side="left", fill="both", expand=True)
secondCanvas = Canvas(root, width=20000, height=10000,scrollregion=(0,0,0,5000),yscrollcommand=scrollbar.set)
secondCanvas.pack(side="left", fill="both", expand=True)
secondCanvas.create_rectangle((200,300,300,6000))
widget = Label(firstCanvas, text='Spam')
widget.pack()

# Lots of widgets so they reach beyond the screen, all in the following format

widgetOne=Label(firstCanvas, text="this is a test")
widgetOne.pack()
widgetTwo=Entry(firstCanvas)
widgetTwo.pack()
widgetThree=Label(secondCanvas, text='Spam')
widgetFour=Entry(secondCanvas)
widgetFour.pack()   

scrollbar.config(command=secondCanvas.yview)
mainloop()

1 个答案:

答案 0 :(得分:2)

画布仅滚动画布对象。对于小部件,这意味着使用canvas.create_window(...)

创建的小部件

请参阅Adding a scrollbar to a group of widgets in Tkinter