47

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

此外,我需要获取窗口的宽度和高度(无论是最大化还是用户之后重新缩放它),但我想我可以自己找出来。

4

8 回答 8

110

你可以通过调用来做到这一点

root.state('zoomed')
于 2014-03-18T14:52:08.600 回答
54

如果要将全屏属性设置为 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)
于 2013-04-12T23:26:39.943 回答
42

要显示带有标题栏的最大化窗口,请使用“缩放”属性

root = Tk()
root.attributes('-zoomed', True)
于 2014-03-08T21:29:31.457 回答
12

我在其他网站上找到了这个:

import Tkinter

MyRoot = Tkinter.Tk()
MyRoot.state("zoomed")

MyRoot.mainloop()

这解决了我的问题。

于 2018-10-16T12:39:04.087 回答
10

第一种方法是使用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 显示在任务栏等...)

于 2016-08-25T22:16:55.877 回答
2

root.wm_state('zoomed')正如@JFSebastian 所提到的,最pythonic 是"

于 2016-12-01T17:44:36.710 回答
0

使用 TkAgg 作为后端,这是在没有全屏的情况下最大化窗口的唯一组合:

win_manager = plt.get_current_fig_manager()
win_manager.window.state('zoomed')
win_manager.full_screen_toggle()
于 2019-06-13T12:11:38.393 回答
-2

您可以使用此代码

import tkinter as tk
window = tk.Tk()
 
window.attributes('-zoomed',True)

window.mainloop()
于 2021-08-09T11:04:29.963 回答