小编Car*_*son的帖子

使用网格管理器添加小部件后的 tkinter 可滚动画布

我正在尝试创建一个画布小部件,其中嵌入了许多小部件。由于经常有太多的小部件无法适应我为画布提供的垂直空间,因此它需要是可滚动的。

import tkinter as tk                # for general gui
import tkinter.ttk as ttk           # for notebook (tabs)

class instructionGeneratorApp():

    def __init__(self, master):

        # create a frame for the canvas and scrollbar
        domainFrame = tk.LabelFrame(master)
        domainFrame.pack(fill=tk.BOTH, expand=1)

        # make the canvas expand before the scrollbar
        domainFrame.rowconfigure(0,weight=1)
        domainFrame.columnconfigure(0,weight=1)

        vertBar = ttk.Scrollbar(domainFrame)
        vertBar.grid(row=0, column=1, sticky=tk.N + tk.S)

        configGridCanvas = tk.Canvas(domainFrame,
                                    bd=0,
                                    yscrollcommand=vertBar.set)
        configGridCanvas.grid(row=0, column=0, sticky=tk.N + tk.S + tk.E + tk.W)

        vertBar.config(command=configGridCanvas.yview)

        # add widgets to canvas

        l = tk.Label(configGridCanvas, text='Products')
        l.grid(row=1, column=0) …
Run Code Online (Sandbox Code Playgroud)

python canvas tkinter python-3.x

5
推荐指数
1
解决办法
1022
查看次数

标签 统计

canvas ×1

python ×1

python-3.x ×1

tkinter ×1