簡體   English   中英

tkinter - 設置幾何而不顯示 window

[英]tkinter - set geometry without showing window

我正在嘗試排列一些 label 和 canvas 小部件。 為此,我需要知道我的 label 盒子的寬度。 如果用戶更改系統字體大小,我希望我的小部件能夠自動調整,所以我不想硬編碼每個字符 12 個像素。 如果我測量 label 小部件,它總是 1 像素寬。 在我調用.update() 之前,我得到了正確的值。 But.update() 將 window 和我的 label 放在屏幕上,說 window 然后在我最終打包我的最終小部件時消失了。 但是,當我第一次放置小部件時,這會導致不受歡迎的 flash。

那么,如何在沒有.update() 的情況下測量 label 小部件? 或者如何 I.update() 一個小部件而不讓它顯示在屏幕上? 如果重要的話,我正在使用 Python。

在調用更新之前撤回 window。 你想要的命令是 wm_withdraw

root = Tk()
root.wm_withdraw()
<your code here>
root.wm_deiconify()

但是,如果您真正的問題是排列小部件,您通常不需要知道小部件的大小。 使用網格幾何管理器。 拿出一張方格紙,把你的小部件放在上面。 隨意為每個小部件跨越盡可能多的正方形。 然后,該設計可以輕松轉換為一系列網格調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM