【问题标题】:How to check if window is on Fullscreen in Tkinter?如何在 Tkinter 中检查窗口是否全屏显示?
【发布时间】:2018-01-06 07:26:30
【问题描述】:

我做了 F11 切换全屏。但是我怎样才能使 F11 可以同时打开和关闭全屏?

我尝试创建一个 [if] 语句,以便在窗口之前切换到全屏时将其关闭,但我找不到检查窗口是否已切换的方法。

感谢您的帮助,谢谢。

更新的解决方案:这是似乎可以正常工作的最终代码。

def toggle_fullscreen(event):
if (root.attributes('-fullscreen')):
    root.attributes('-fullscreen', False)

else:
    root.attributes('-fullscreen', True)
root.bind("<F11>", toggle_fullscreen)

【问题讨论】:

  • 一种简单的方法是设置一个变量并在点击时在两个数字之间更改它。 like 0 & 1:先设置为0,如果0变为1;否则更改为 0。仅此而已。
  • 请在您的问题中添加一些代码。
  • @ParvizKarimli 我现在没有理由添加代码。我想知道我怎么知道它是否全屏,我得到了答案。 root.attribute('-fullscreen') 感谢所有回答的人。尤其是 Parviz,我看到了 root.attribute 方法,但我不知道我是否可以使用全屏,所以是的,谢谢。
  • 不客气!嗯,我理解你。但是在您的问题中使用 sn-p 是一个好习惯,因此其他人会更好地了解您的程序中实际发生的情况(“帮助其他人重现问题”)。此外,也许其他人会提供更好的方法。欲了解更多信息,请访问MCVE。编码愉快!
  • @ParvizKarimli 我想更新你的代码 Parviz 它似乎对我不起作用,但 BryanOakley 的方法在这里和那里进行了一些调整。但毫无疑问,这两个答案都非常有用。

标签: python tkinter fullscreen


【解决方案1】:

这是我在上面评论中提到的方法:

from tkinter import *
root = Tk()

root.focus_set()

var = 0

def f(event):
    global var
    if var == 0:
        root.attributes("-fullscreen", True)
        var = 1
    else:
        root.attributes("-fullscreen", False)
        var = 0

root.bind("<F11>", f)

【讨论】:

  • 很好的解决方案,它真的帮助了我。你甚至可以更简单:将 var 设为 bool 并将 f(event) 的内容替换为 "var = not var",然后是 "root.attributes("-fullscreen", var)",但它也可以完美地工作.
  • @LvnRtg 那么您可能想要投票,以便其他人更容易找到。
  • 我已经这样做了...
【解决方案2】:

root.attributes 可以仅使用单个参数调用以获取该参数的值。

if root.attribute('-fullscreen'):
    ...
else
    ...

【讨论】:

  • 那里的引号和括号不匹配...(以及缺少的:
【解决方案3】:

你可以写:

root.attributes("-fullscreen", not root.attributes('-fullscreen'))

它将 -fullscreen 设置为不是它的任何东西

【讨论】: