具有标题栏和任务栏的Tkinter窗口
我在网上找了很久这个问题,但似乎没有人知道答案。我在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的任务栏挡住了,所以我的一些元素看不到。一个简单的解决办法是把窗口的高度设置为屏幕高度减去一个常量,或者根据操作系统的数据来计算这个常量。不过,这样的做法看起来非常不优雅。
有没有什么办法可以在tkinter中以一种干净的方式最大化窗口,让它在(Windows)任务栏上方,并且仍然保留标题栏呢?
1 个回答
7
我知道这个问题已经很老了,但我在一台运行XP系统(32位)、使用Python 2.7.6的电脑上测试了以下代码,使用的是TCL版本8.5和tk版本8.5。
代码:
import Tkinter as tk
root = tk.Tk()
root.state("zoomed")
root.mainloop()
这个代码确实能让窗口在主显示器上最大化打开。
不过也有一些问题——我没办法让它在其他显示器上最大化,但在不遮挡标题栏或任务栏的情况下,它的表现还是很稳定的。
而且因为你想保留标题栏,所以我建议去掉overrideredirect这个设置。