【问题标题】:Why a button in a scrollable canvas doesn't move? (Python3 + tkinter)为什么可滚动画布中的按钮不动? (Python3 + tkinter)
【发布时间】:2020-03-12 21:57:55
【问题描述】:

我正在尝试使用 tkinter 模块在 python3 中编写程序。我创建了一个带有 y 滚动条的画布小部件,但是当我尝试在画布中添加一个按钮并滚动区域时,该按钮不会移动。代码如下:

# defining the tool bar
class toolBar(object):

    def __init__(self, master):
        ''' creates the toolbar object '''

        self.master = master

        # creating the toolbarobject
        self.toolbar = tk.Canvas(self.master, width=70, height=200, bg="lightgrey")
        self.toolbar.grid(row=0, column=1, sticky="nwes", rowspan=2)
        self.toolbar.configure(scrollregion=(0, 0, 0, 2000))

        b1 = tk.Button(self.toolbar, text="Try")
        b1.grid()

        # creating the y scrollling
        self.scroll_y = tk.Scrollbar(self.parent.master, orient="vertical", command=self.toolbar.yview)
        self.scroll_y.grid(row=0, column=0, sticky="ns", rowspan=2)

        self.toolbar.configure(yscrollcommand=self.scroll_y.set)

其中 master 是传递给类的 tk.Tk() 对象。你有解决这个问题的办法吗?

P.S.:我还有一个问题:当我运行我的程序时,包含按钮的画布适合按钮宽度,是否可以在不改变画布宽度的情况下放置按钮?

【问题讨论】:

    标签: python-3.x button tkinter scrollbar tkinter-canvas


    【解决方案1】:

    画布无法滚动使用packplacegrid 添加的项目。它只会滚动使用create_window 方法添加的小部件。

    【讨论】:

    • 谢谢你的回答,但你能告诉我一个例子吗,因为我试图在互联网上搜索它,但我无法让我的代码工作。跨度>
    • @Luke-ProgrammingChannel:互联网上可能有数百个create_window 的例子。只需在本站搜索“[tkinter] create_window”,您将获得近 300 个问题和答案。
    猜你喜欢
    • 2014-07-12
    • 2021-08-16
    • 2015-12-18
    • 2021-10-23
    • 1970-01-01
    • 2022-12-04
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    相关资源
    最近更新 更多