我想将窗口初始化为最大化,但我无法找到如何做到这一点。我在Windows 7上使用python 3.3和Tkinter 8.6。我想答案就在这里:http://www.tcl.tk/man/tcl/TkCmd/wm.htm#m8 但我不知道如何将它输入我的python脚本
此外,我需要获得窗口的宽度和高度(两者都是最大化的,如果用户之后重新缩放它),但我想我可以自己找到它。
答案 0 :(得分:47)
你可以通过调用
来完成root.state('zoomed')
答案 1 :(得分:30)
如果要将全屏属性设置为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()
和winfo_height()
,您可以获得宽度和高度或窗口,还可以将事件处理程序绑定到<Configure>
事件:
def resize(event):
print("New size is: {}x{}".format(event.width, event.height))
root.bind("<Configure>", resize)
答案 2 :(得分:24)
要使用标题栏显示最大化窗口,请使用“缩放”属性
root = Tk()
root.attributes('-zoomed', True)
答案 3 :(得分:5)
第一种方法是使用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
和手动设置几何体更好(在某些平台上可能会导致非托管窗口,只能通过自己的界面关闭或查杀)这个过程,不会在任务栏上显示等...)
答案 4 :(得分:1)
最pythonic是&#34; root.wm_state('zoomed')
,正如@ J.F.Sebastian所提到的
答案 5 :(得分:1)
我在其他网站上找到了这个
import Tkinter
MyRoot = Tkinter.Tk()
MyRoot.state("zoomed")
MyRoot.mainloop()
这解决了我的问题。
答案 6 :(得分:0)
您可以使用此代码
import tkinter as tk
window = tk.Tk()
window.attributes('-zoomed',True)
window.mainloop()
答案 7 :(得分:-1)
使用TkAgg作为后端,这是在没有全屏的情况下最大化窗口的唯一组合:
win_manager = plt.get_current_fig_manager()
win_manager.window.state('zoomed')
win_manager.full_screen_toggle()