2010-10-16 68 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())。

相关问题