【问题标题】:Python Tkinter: Attempt to get widget sizePython Tkinter:尝试获取小部件大小
【发布时间】:2012-10-30 22:17:49
【问题描述】:

我正在尝试使用winfo_geometry() 函数查找窗口的大小,但它最终返回1x1+0+0 我也尝试过winfo_height, winfo_width,但我不断收到1

代码

from tkinter import *

root=Tk()

root.geometry('400x600')

print (root.winfo_width())
print (root.winfo_height())
print (root.winfo_geometry())

root.mainloop()

【问题讨论】:

    标签: python python-3.x geometry size tkinter


    【解决方案1】:

    您正在尝试在渲染窗口之前获取尺寸。

    prints 之前添加root.update(),它会显示正确的尺寸。

    from Tkinter import *
    
    root=Tk()
    
    root.geometry('400x600')
    
    root.update()
    
    print (root.winfo_width())
    print (root.winfo_height())
    print (root.winfo_geometry())
    
    root.mainloop()
    

    【讨论】:

    • Tim,感谢您的帮助,有趣的是,解决最长的问题很容易解决。
    • 我应该使用 .update 还是 .update_idletasks() 来更新大小的变化?
    • 在几乎所有情况下都使用update_idletasks()。在此答案中使用哪一个并不重要,否则请坚持使用update_idletasks()
    • 我为这个答案搜索了 20 分钟。老实说,我认为 Tkinter 是最糟糕的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 2021-03-15
    • 2017-10-18
    • 2019-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多