【问题标题】:Tkinter scroll bar not scrollingTkinter 滚动条不滚动
【发布时间】:2016-07-07 00:27:04
【问题描述】:

我正在尝试创建一个带有两个画布和一个滚动条同时通过两者的 gui,作为对另一个项目的测试。我已经创建了根、两个画布并使用 grid 方法将一些标签固定到每个画布上,并创建了滚动条。

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

相关代码是

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()

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    画布只会滚动画布对象。对于小部件,这意味着使用 canvas.create_window(...) 创建的小部件

    Adding a scrollbar to a group of widgets in Tkinter

    【讨论】:

    • 文本和标签小部件工作正常。但是,当我添加几个按钮时,它会抛出错误`“Traceback(最近一次调用最后一次):文件“/home/juanelo/Downloads/prueba2.py”,第 978 行,在 populate(frame) 文件中“/home/juanelo/Downloads/prueba2.py”,第 966 行,在填充 grabarBTN.grid(row=0,column=6) 文件“/usr/lib/python3.4/tkinter/__init__.py”,第 2060 行, 在 grid_configure + self._options(cnf, kw)) _tkinter.TclError: cannot use geometry manager grid inside . 它已经有由包管理的从属" `
    • @JuanDougnac:阅读错误信息。它准确地告诉你问题是什么。您不能在同一个父窗口中同时使用 grid 和 pack (在那个堆栈跟踪中,“.”代表什么)
    猜你喜欢
    • 2015-04-03
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    相关资源
    最近更新 更多