python - 如何在画布小部件中创建按钮和标签并使画布中的整套小部件可滚动?
问题描述
如何在画布小部件中创建按钮和标签并使画布中的整套小部件可滚动?
我在 IDE 中遇到了一个_create()
选项,但我不确定如何使用它。我尝试输入 Button foritemType
但它不起作用。我试过create_window()
了,但我也不知道如何使用它。
我的问题不是如何使用循环和添加按钮,而是如何创建小部件并将它们放置在画布中,但可以滚动?还有一个_create()
吗?如果是,有没有办法使用它创建小部件?
解决方案
如何在画布小部件中创建按钮和标签,并使画布中的整套小部件可滚动?
你有两个选择:
- 使用 canvas 方法
create_window
将按钮和标签添加到画布的特定坐标处 - 使用 canvas 方法在画布
create_window
上添加一个框架,然后使用pack
orgrid
或将您的按钮和标签放在框架内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"))
推荐阅读
- javascript - 淘汰赛中的hasfocus事件在第一次点击时不起作用
- python - 缩放并在 iPython 中为 matplotlib 绘图设置光标
- python - 如何将参数分组为程序帮助消息的部分
- php - 有人可以帮我清理/合并代码吗
- c++ - c ++释放包含自定义类的向量的内存
- javascript - 如何在jquery中使用accounting.js从表中获取总价格?
- javascript - D3.js enter() data() remove() exit()
- duplicates - 将修改后的节点重新加载到 aws-neptune 时出现不良行为
- c - 如何在 Linux 内核中加入多个线程
- angular - 使用 IIS10 限制对某些 Angular 路由的特殊 AD 组的访问