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

How can I create buttons and labels in a canvas widget and make the whole set of widgets in the canvas scrollable?

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

我在 IDE 中遇到了一个 _create() 选项,但我不确定如何使用它。我尝试输入 itemType 的按钮,但没有成功。 我尝试了 create_window() 但我也不确定如何使用它。

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

How to create buttons and labels in a canvas widget and make the whole set of widgets in the canvas scrollable?

你有两个选择:

  • 使用canvas方法create_window在特定坐标canvas添加按钮和标签
  • 使用 canvas 方法 create_window 将框架添加到 canvas,然后使用 pack 或 [= 将按钮和标签放在框架内14=] 或 place.

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

I came across a _create() option in my IDE but I'm not sure how to use it.

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

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