如果我运行这个Python代码:
from Tkinter import *; w = Tk(); w.geometry( "640x480" ); print( w.geometry() )
我将获得“1x1 + 0 + 0”输出。但是,如果我启动解释器并将其作为两个单独执行 命令,我会得到完全不同的输出:
>>> from Tkinter import *; w = Tk(); w.geometry( "640x480" )
''
>>> w.geometry()
'640x480+101+73'
似乎几何体不会立即应用,还需要其他东西: (。也许有人知道我需要做什么来更新几何 到位?我需要它来正确地居中/定位主窗口和子窗口。
答案 0 :(得分:6)
在窗口(或窗口小部件)上调用update_idletasks()
将强制其几何体更新。
以下是Tkinter参考文献中的一小段文字摘录:
在应用程序更新其空闲任务之前,几何图形不准确。特别是,在窗口小部件和几何管理器协商其位置之前,所有几何都是“1x1 + 0 + 0”。
答案 1 :(得分:0)
这样就完成了,但给出了错误的答案:
from Tkinter import *; w = Tk(); w.geometry( "640x480" ); print "foo"; print( w.geometry() )
''
foo
1x1+0+0
这似乎挂起了:
from Tkinter import *; w = Tk(); w.geometry( "640x480" ); print "foo"; print "foo"; print( w.geometry() )
只有键盘中断似乎让我失望。
果然,这似乎也能正常运作:
from Tkinter import *; w = Tk(); w.geometry( "640x480" ); w.update_idletasks(); print( w.geometry() )
''
640x480+5+27