带有标题栏和窗口任务栏的Tkinter窗口

时间:2014-06-25 09:18:21

标签: python tkinter window fullscreen taskbar

我对这个问题进行了广泛的搜索,但似乎没有人知道。我在python 2.7中创建了一个简单的tkinter窗口(tcl 8.5)并希望它最大化,就像我会点击右上角的最大化按钮一样。使用-fullscreen选项不是一个选项,因为它会删除标题栏。

我尝试了以下内容:

import Tkinter

root = Tkinter.Tk()
root.overrideredirect(True)
# Set window to be size of screen
root.geometry("{0}x{1}+0+0".format(root.winfo_screenwidth(), root.winfo_screenheight()))  

问题是该窗口现在位于Windows任务栏下方,因此我的某些元素未显示。一个简单的方法是将高度设置为screenheight-some_constant,或者根据操作系统中的数据计算some_constant。然而,这似乎是一个非常难看的黑客。

有没有办法以一种干净的方式在tkinter中最大化窗口,其中窗口位于(Windows)任务栏上方并且仍然有标题栏?

1 个答案:

答案 0 :(得分:1)

我知道这是一个老问题,但我已经使用python 2.7.6在XP系统(32位)上测试了以下代码,使用的是TCL版本8.5和tk版本8.5。

代码:

import Tkinter as tk

root = tk.Tk()

root.state("zoomed")

root.mainloop()

这会启动主显示器上最大化的窗口 它确实有陷阱 - 我无法在另一台显示器上使其最大化,但在没有覆盖标题栏或任务栏的情况下可靠地工作。

如果您想保留标题栏,我会忽略overrideredirect。