gpt4 book ai didi

tcl - 使用网格时无法将 tcl/tk 程序居中

转载 作者:行者123 更新时间:2023-12-01 11:52:09 24 4
gpt4 key购买 nike

我这样做的原因是因为我试图将窗口设置在屏幕中央。我使用的是 grid 而不是 pack,我已经阅读了有关使用 wm grid 的信息,但不明白如何设置它。我也不明白为什么 。 cget -width 正在返回 0 我认为网格应该在没有给出选项时设置大小?

set width [. cget -width]
set height [. cget -height]
puts $height
puts $width
set x [expr { ( [winfo vrootwidth .] - $width ) / 2 }]
set y [expr { ( [winfo vrootheight .] - $height ) / 2 }]


wm title . "a3q2"
wm geometry . ${width}x${height}+${x}+${y}

这次我做错了什么? P.S 作业我不只是想要一个代码贴。谢谢

最佳答案

[。 cget -width][. cget -height] 返回窗口的显式配置宽度/高度。对于 Tk 中的大多数小部件,您不会显式配置维度。相反,小部件具有基于小部件内容的“自然”宽度/高度。例如,标签的宽度/高度足以容纳其中的文本。顶层窗口的大小足以容纳其中的所有小部件。

要获得窗口的实际尺寸,您应该使用 [winfo width .][winfo height .]。确保在窗口及其内部的所有小部件都已映射后执行此操作(通常这意味着在 [winfo 之前执行 [update] 调用。 ..] 调用)。否则几何管理器可能还没有更新小部件/窗口的尺寸。

关于tcl - 使用网格时无法将 tcl/tk 程序居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10491026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com