【发布时间】:2017-07-19 12:01:50
【问题描述】:
我目前正在尝试在画布上实现滚动条,因为我了解到我不能立即在框架上执行此操作。我可以让它出现,但我不能让它真正发挥作用。当谈到 python 和 tkinter 时,我仍然是一个初学者,之前关于这件事的帖子对我没有太大帮助。这是我的代码(我愿意就我所做的任何其他被认为是不好的做法的建议提出建议):
from tkinter import *
class myApp():
def __init__(self,root):
myApp.f2=Frame(root)
myApp.f2.pack()
myApp.canv=Canvas(self.f2)
myApp.canv.pack()
myApp.f1=Frame(self.canv)
myApp.f1.pack(side=LEFT, fill=BOTH, expand=TRUE)
myApp.scroll=Scrollbar(self.f1,orient=VERTICAL,
command=myApp.canv.yview)
myApp.scroll.grid(row=0,column=6)
myApp.canv.config(yscrollcommand=myApp.scroll.set)
我必须为其余的小部件使用网格,我没有在这里包含。
【问题讨论】:
-
你试图让滚动条成为画布的孙子(通过框架
f1),这很奇怪——通常滚动条和它的滚动小部件是兄弟姐妹。此外,您通常不会通过.grid()或.pack()将子代添加到画布 - 您必须使用.add_window()创建实际滚动的子代。
标签: python-3.x tkinter