Python 3.x - 在tkinter中切换全屏

时间:2015-05-01 11:57:00

标签: python tkinter toggle fullscreen

到目前为止,我有一个命令使我的窗口全屏。现在,可以预见,我希望能够退出全屏。

这是我的代码:

def toggFullscreen(self, win):

    def exitFullscreen(event=None):
        win.withdraw()
        win.deiconify()
        win.overrideredirect(False)
        win.geometry('1024x700')

    w = win.winfo_screenwidth()
    h = win.winfo_screenheight()
    win.overrideredirect(True)
    win.geometry('%dx%d+0+0' % (w, h))
    win.focus_set()
    win.bind('<Escape>', exitFullscreen)

但问题是我无法重新出现窗框。我认为做win.overrideredirect(False)会有效,但它没有。

1 个答案:

答案 0 :(得分:1)

不确定为什么它无法在您的计算机上运行,​​但请尝试以下代码示例:

#!python3

import tkinter as tk

geom=""

def fullscreen():
    global geom
    geom = root.geometry()
    w = root.winfo_screenwidth()
    h = root.winfo_screenheight()
    root.overrideredirect(True)
    root.geometry('%dx%d+0+0' % (w, h))

def exitfullscreen():
    global geom
    root.overrideredirect(False)
    root.geometry(geom)

root = tk.Tk()
tk.Button(root,text ="Fullscreen", command=fullscreen).pack()
tk.Button(root,text ="Normal", command=exitfullscreen).pack()
root.mainloop()

我确定要做的一件事是在全屏前存储几何图形,然后在退出全屏时重新应用它。需要全局语句,因为如果我没有使用它,fullscreen函数将几何存储在局部变量中,而不是我在顶部创建的那个。