python - 在 tkinter 中,当 Canvas 用作另一个小部件的主版时, Canvas 大小设置似乎停止工作。有办法解决这个问题吗?

标签 python tkinter tkinter-canvas

所以,这是我面临的问题的简化形式:

以下代码生成的 Canvas 大小刚好足以容纳标签,即使它配置为 400 x 400

import tkinter as tk
root = tk.Tk()

canvas = tk.Canvas(root, width=400, height=400)
canvas.pack()

label = tk.Label(canvas, text='foo')
label.pack()

如果省略最后两行,则 Canvas 的大小就是我期望的大小(400 x 400),但它不包含标签,而这是我希望它包含的内容。

正如我所说,这是我的问题的简化形式,我实际上想将几个小部件放入 Canvas 中,但这种行为是我的问题的原因。有没有办法使 Canvas 达到我想要的大小(以像素为单位)将其用作其他小部件的主版?

最佳答案

您可以做的是设置根窗口的大小:

import tkinter as tk
root = tk.Tk()
root.geometry('400x400')
canvas = tk.Canvas(root)
canvas.pack()

label = tk.Label(canvas, text='foo')
label.pack()

root.mainloop()

如果您可以使用grid方法,则使用row/column configuresticky参数将完成其余的工作。我对 pack 的了解还不够。

关于python - 在 tkinter 中,当 Canvas 用作另一个小部件的主版时, Canvas 大小设置似乎停止工作。有办法解决这个问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31145798/

相关文章:

python - 在python中使用tkinter从顶层窗口关闭主窗口

Python Tkinter 输入框

python - 是否可以将 Canvas 作为按钮的图标?

python - 在 Tkinter Canvas 小部件中操作单个像素颜色

python - 如何修复 itsdangerous.BadTimeSignature 签名错误

python - 检查 RDD 中是否存在值

Python3,将MATLAB数组代码转换为Python版本?

python - 仅打印所需的列

python - 如何增加 Checkbutton 大小 - Tkinter

python - 如何在 tkinter 中的用户输入之间等待一段时间?