[英]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.