首页 > 解决方案 > 如何在画布小部件中创建按钮和标签并使画布中的整套小部件可滚动?

问题描述

如何在画布小部件中创建按钮和标签并使画布中的整套小部件可滚动?

我在 IDE 中遇到了一个_create()选项,但我不确定如何使用它。我尝试输入 Button foritemType但它不起作用。我试过create_window()了,但我也不知道如何使用它。

我的问题不是如何使用循环和添加按钮,而是如何创建小部件并将它们放置在画布中,但可以滚动?还有一个_create()吗?如果是,有没有办法使用它创建小部件?

标签: pythontkintercanvastkinter-canvastkinter-layout

解决方案


如何在画布小部件中创建按钮和标签,并使画布中的整套小部件可滚动?

你有两个选择:

  • 使用 canvas 方法create_window将按钮和标签添加到画布的特定坐标处
  • 使用 canvas 方法在画布create_window上添加一个框架,然后使用packorgrid或将您的按钮和标签放在框架内place

然后,您必须确保scrollregion将画布配置为足够大以包含小部件。

我在 IDE 中遇到了一个 _create() 选项,但我不确定如何使用它。

以下示例显示如何使用create_window将按钮添加到画布。对于任何类型的小部件,该过程都是相同的。

canvas = tk.Canvas(root)
canvas.pack(fill="both", expand=True)

the_button = tk.Button(canvas, text="Click me", ...)
canvas.create_window(10, 10, window=the_button, anchor="nw")
canvas.configure(scrollregion=canvas.bbox("all"))

推荐阅读