繁体   English   中英

为什么 Tkinter.TopLevel.wm_geometry() 返回“1x1+0+0”?

[英]Why does Tkinter.TopLevel.wm_geometry() return "1x1+0+0"?

我有一个 Tkinter 根窗口和一个 tk.Toplevel。 当我在根窗口和.wm_geometry()调用.wm_geometry()时,它们都返回字符串1x1+0+0 ,即使我的窗口在屏幕上可见。

我的代码的精简版本是:

root = tk.Tk()
root.withdraw()
window = tk.Toplevel(root)
window.withdraw()
# add things to this window
root.after(0, execute_next_instruction)
root.mainloop()

def execute_next_instruction():  
    window.wm_geometry()  # "1x1+0+0"

事实证明,因为我使用的是tk.Tk.after(0, execute_next_instruction) ,所以在窗口准备好之前获取窗口几何信息的调用仍在执行。 修复方法是使用tk.Tk.after(1, execute_next_instruction)

使用wm_geometry()位置。 当不带参数调用时,它返回当前几何图形(宽 x 高 + x 位置 + y 位置)。 您还可以在窗口实例上调用它。 例如:

root = tk.Tk()
root.wm_geometry("800x600+0+0")
# ... other stuff ...
root.mainloop()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM