调整tkinter窗口的全屏幕大小

时间:2015-05-07 04:00:39

标签: python canvas tkinter tkinter-canvas

我知道有很多这样的帖子。但是,我不认为我遇到过这个问题。

我知道以下内容将获取屏幕的当前宽度和高度,并将tkinter窗口设置为此大小,然后我们希望有一个类似的画布。

import tkinter as tk
root = tk.Tk()
width = root.winfo_screenwidth()
height = root.winfo_screenheight()
root.geometry("%dx%d" % (width, height))
canvas = tk.Canvas(root, .....)
canvas.pack(fill = "both", expand = True)

然而,我注意到使用这个是因为tkinter窗口的一部分总是从屏幕底部的任务栏中切断。我发现这有点烦人,特别是如果你有标签或其他这样的功能,你希望在底部可见。

有没有解决这个问题?我知道我们可以从高度中减去一个偏移因子来解释屏幕底部可能的任务栏,但是这会尴尬地取代tkinter画布。

1 个答案:

答案 0 :(得分:2)

我相信没有办法在Windows上从Tkinter内部获取任务栏信息。

但你不必这样做。如果您将主窗口的状态设置为"缩放",Tkinter会要求Windows最大化您的窗口,而Windows会照顾您使用任务栏 - 并且还可以处理任何其他奇怪的装饰你可能有,并处理自动隐藏任务栏,等等。

root.state('zoomed')

据我所知,Tkinter没有记录这个价值(Tkinter书中的state文档只说“正常”,“标志性的”和#39; ,'撤销'以及' icon'被允许)。

但是,通常情况下,如果你转向Tcl / Tk文档,你会发现Tkinter的文档只是不完整。即使在the tutorial中,也提到了:

  

在大多数系统上,您可以通过图标化临时从屏幕上删除该窗口。在Tk中,窗口是否被图标化被称为窗口的状态。窗口的可能状态包括" normal"和"标志性的" (对于图标化窗口),以及其他几个:"撤回"," icon"或者"缩放"。

wm state的Tk reference documentation说:

  

...正常,标志性,撤回,图标或(仅限Windows和Mac OS X)缩放。

另外,IIRC,您可以使用" zoom"为"缩放" (以及"撤回""撤回","图标化"或" iconify"" iconic"和& #34; iconwindow"对于" icon"),但Tk试图不一致友好。