如何在不进行更新的情况下找出tkinter窗口的宽度?

问题描述 投票:0回答:1

我想在屏幕上将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()的操作,尽管我仍然无法想象一种接收其大小的方法。

python python-3.x tkinter
1个回答
0
投票

如果您不想使用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()中的时间不应该为零。否则它将不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.