我想将一个窗口初始化为最大化,但我不知道该怎么做。我在 Windows 7 上使用 python 3.3 和 Tkinter 8.6。我想答案就在这里:http ://www.tcl.tk/man/tcl/TkCmd/wm.htm#m8 但我不知道如何输入它进入我的python脚本
此外,我需要获取窗口的宽度和高度(无论是最大化还是用户之后重新缩放它),但我想我可以自己找出来。
我想将一个窗口初始化为最大化,但我不知道该怎么做。我在 Windows 7 上使用 python 3.3 和 Tkinter 8.6。我想答案就在这里:http ://www.tcl.tk/man/tcl/TkCmd/wm.htm#m8 但我不知道如何输入它进入我的python脚本
此外,我需要获取窗口的宽度和高度(无论是最大化还是用户之后重新缩放它),但我想我可以自己找出来。
你可以通过调用来做到这一点
root.state('zoomed')
如果要将全屏属性设置为 True,则很简单:
root = Tk()
root.attributes('-fullscreen', True)
但是,它不显示标题栏。如果要保持可见,可以使用以下geometry()
方法调整 Tk 元素的大小:
root = Tk()
w, h = root.winfo_screenwidth(), root.winfo_screenheight()
root.geometry("%dx%d+0+0" % (w, h))
使用winfo_width()
andwinfo_height()
可以获得宽度和高度或窗口,还可以将事件处理程序绑定到<Configure>
事件:
def resize(event):
print("New size is: {}x{}".format(event.width, event.height))
root.bind("<Configure>", resize)
要显示带有标题栏的最大化窗口,请使用“缩放”属性
root = Tk()
root.attributes('-zoomed', True)
我在其他网站上找到了这个:
import Tkinter
MyRoot = Tkinter.Tk()
MyRoot.state("zoomed")
MyRoot.mainloop()
这解决了我的问题。
第一种方法是使用root.state('zoomed')
,但不应该是普遍可用的。它适用于 Windows 和我的 Ubuntu 机器。但是,在我的 Arch 机器下却没有。
第二种是先获取maxsize,然后手动设置几何,例如:
m = root.maxsize()
root.geometry('{}x{}+0+0'.format(*m))
这适用于大多数机器,但不适用于所有机器。例如,在我的 Arch 下maxsize()
返回(1425, 870)
,而最大化窗口的真实几何图形应该是(1440, 848)
. 所以,你也不能依赖它。
第三,我认为最好的方法是使用root.wm_attributes('-zoomed', 1)
. 它是普遍可用的,似乎是最安全的。在某些机器上,只能按宽度或高度进行缩放,但与以前的方法相比,这个方法永远不会给你一个部分位于屏幕之外的窗口。
最后,如果您想要全屏,而不仅仅是缩放窗口,请使用root.wm_attributes('-fullscreen', 1)
. 它提供了到窗口管理器行为的本机链接,因此比overrideredirect
手动玩和设置几何图形要好得多(在某些平台上可能会导致非托管窗口,它只能通过自己的界面关闭或终止进程,不会) t 显示在任务栏等...)
root.wm_state('zoomed')
正如@JFSebastian 所提到的,最pythonic 是"
使用 TkAgg 作为后端,这是在没有全屏的情况下最大化窗口的唯一组合:
win_manager = plt.get_current_fig_manager()
win_manager.window.state('zoomed')
win_manager.full_screen_toggle()
您可以使用此代码
import tkinter as tk
window = tk.Tk()
window.attributes('-zoomed',True)
window.mainloop()