我想在屏幕上将tkinter窗口居中,可以使用:
root.geometry(f"+{(file_picker.winfo_screenwidth()-file_picker.winfo_width())//2}+"
f"{(file_picker.winfo_screenheight()-file_picker.winfo_height())//2}")
这是使用屏幕宽度和窗口宽度来计算左上角。但是,为了找出窗口宽度,我必须运行root.update()
,这会导致窗口在错误的位置显示一会儿。
为避免这种情况,我可以想到两种解决方案:
以像素为单位定义窗口大小,这意味着窗口大小不再自动调整,并且
在不显示窗口的情况下进行类似root.update()
的操作,尽管我仍然无法想象一种接收其大小的方法。
如果您不想使用root.update()
。可以在.after()
之前使用.mainloop()
。
root.after(10,lambda :root.geometry(f"+{(root.winfo_screenwidth()-root.winfo_width())//2}+"f"{(root.winfo_screenheight()-root.winfo_height())//2}"))
root.mainloop()
.after()
中的时间不应该为零。否则它将不起作用。