有没有办法设置 tcl/tk canvas 最小尺寸?

Is there a way to set tcl/tk canvas minsize?

我有一个弹出窗口,它是一个 canvas,我希望允许用户将其拖动到他们想要的任何大小,但是它可能会折叠成非常小且无法使用的东西。有没有办法设置 canvas 最小尺寸? (例如 "wm minsize")希望答案不是嵌入 canvas "in a window".

canvas 的自然最小尺寸是 1×1。

通常,canvas 的实际最小尺寸由几何管理器设置;因为大多数时候你想使用 grid 来包含 canvas(这样你就可以正确排列滚动条)设置相关行和列的最小尺寸是关键:

set master .
set canvas .canv

# Go for a minimum size of 400x200
grid columnconfigure $master $canvas -minsize 400
grid rowconfigure    $master $canvas -minsize 200

pack GM 根本不允许您指定最小尺寸;它使用没有该概念的布局模型。 place 让您可以直接说出所有内容,但在大多数情况下并没有真正的帮助。如果您要将 canvas 嵌入另一个小部件(例如,在文本小部件中),可能还有其他选项。

请注意,您不能实际上 强制系统服从您给出的最小大小指令。它们只是(非常强烈的)提示。 (您可能还想查看 wm minsize 命令来控制请求的总体顶层大小 window,但这是独立的;小部件的最小大小不是整个容器的最小大小, 尽管他们可以互动。)