【问题标题】:Is there a way to set tcl/tk canvas minsize?有没有办法设置 tcl/tk canvas minsize?
【发布时间】:2016-06-08 09:49:51
【问题描述】:

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

【问题讨论】:

    标签: tcl tk


    【解决方案1】:

    画布的自然最小尺寸是 1×1。

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

    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 让您可以直接说出所有内容,但在大多数情况下并没有真正的帮助。如果您将画布嵌入到另一个小部件中(例如,在文本小部件中),则可能还有其他选项。

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

    【讨论】: