tkinter python最大化窗口

时间:2013-04-12 21:17:31

标签: python-3.x tkinter

我想将窗口初始化为最大化,但我无法找到如何做到这一点。我在Windows 7上使用python 3.3和Tkinter 8.6。我想答案就在这里:http://www.tcl.tk/man/tcl/TkCmd/wm.htm#m8 但我不知道如何将它输入我的python脚本

此外,我需要获得窗口的宽度和高度(两者都是最大化的,如果用户之后重新缩放它),但我想我可以自己找到它。

8 个答案:

答案 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()