Ras*_*sen 32 tkinter python-3.x
我想初始化一个窗口最大化,但我无法找到如何做到这一点.我在Windows 7上使用python 3.3和Tkinter 8.6.我想答案就在这里:http://www.tcl.tk/man/tcl/TkCmd/wm.htm#m8 但我不知道如何输入它进入我的python脚本
此外,我需要获得窗口的宽度和高度(两者都是最大化的,如果用户之后重新缩放它),但我想我可以自己找到它.
kab*_*oom 53
你可以通过电话来完成
root.state('zoomed')
Run Code Online (Sandbox Code Playgroud)
A. *_*das 33
如果要将fullscreen属性设置为True,它就像以下一样简单:
root = Tk()
root.attributes('-fullscreen', True)
Run Code Online (Sandbox Code Playgroud)
但是,它不显示标题栏.如果要保持可见,可以使用以下geometry()
方法调整Tk元素的大小:
root = Tk()
w, h = root.winfo_screenwidth(), root.winfo_screenheight()
root.geometry("%dx%d+0+0" % (w, h))
Run Code Online (Sandbox Code Playgroud)
使用winfo_width()
和winfo_height()
可以获得宽度和高度或窗口,还可以将事件处理程序绑定到<Configure>
事件:
def resize(event):
print("New size is: {}x{}".format(event.width, event.height))
root.bind("<Configure>", resize)
Run Code Online (Sandbox Code Playgroud)
小智 29
要使用标题栏显示最大化窗口,请使用"缩放"属性
root = Tk()
root.attributes('-zoomed', True)
Run Code Online (Sandbox Code Playgroud)
小智 11
我在其他网站上找到了这个:
import Tkinter
MyRoot = Tkinter.Tk()
MyRoot.state("zoomed")
MyRoot.mainloop()
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题。
第一种方法是使用root.state('zoomed')
,但不应该是普遍可用的.它适用于Windows和我的Ubuntu机器.但是,在我的Arch机器下它没有.
第二个是首先获取maxsize,然后手动设置几何,如:
m = root.maxsize()
root.geometry('{}x{}+0+0'.format(*m))
Run Code Online (Sandbox Code Playgroud)
这适用于大多数机器,但不适用于所有机器.例如,在我的Arch下maxsize()
返回(1425, 870)
,而最大化窗口的真实几何应该是(1440, 848)
.所以,你也不能依赖它.
第三,在我看来,最好的方法是使用root.wm_attributes('-zoomed', 1)
.它是普遍可用的,似乎是最安全的.在一些机器上只能按宽度或高度进行缩放,但与之前的方法相比,这个方法永远不会给你一个窗口部分屏幕.
最后,如果您想要全屏,而不仅仅是缩放窗口,请使用root.wm_attributes('-fullscreen', 1)
.它提供了一个本地链接到窗口管理器的行为,因此工作得更好,比overrideredirect
手工使用和设置几何(在某些平台上可能会导致非托管窗口,只能通过自己的界面关闭或杀死进程,赢得' t显示在任务栏等...)