2010-10-16 66 views
18

我正在使用PythonTkinter,我需要知道小部件的當前尺寸(寬度,高度)。如何找到當前在tkinter中的小部件大小?

我試過somewidget["width"],但它只返回一個固定值,並且在小部件大小發生變化時(例如窗口大小調整時)不更新。

+0

你確定你的小部件正在調整大小嗎? – 2010-10-16 20:47:07

+0

是的,我可以看到它調整大小。 – 2010-10-16 20:50:50

回答

32

使用somewidget.winfo_width()somewidget.winfo_height()來獲取實際的窗口小部件大小,somewidget['width']屬性只是提供給幾何管理器的提示。

+0

我認爲你的意思是「幾何管理器」,而不是「窗口管理器」。謝謝! – 2010-10-16 21:02:05

+0

按照[這個答案](https://stackoverflow.com/questions/28040943/in-tkinter-why-winfo-height-always-return-1)*實際*意味着在'mainloop()'調用之後。這反過來又意味着如果你想調試widget的尺寸,你必須在事件循環(callbacks)的某處放置'print'語句,或者把它放在一些像標籤這樣的widget上。這是合乎邏輯的,如果你考慮一下,但我認爲舊的程序習慣可以不管。 – 2018-02-08 12:52:57

0

somewidget.winfo_width()somewidget.winfo_height()給出1.您需要在獲取這些值之前更新Tk(問題tk.update())。

相關問題