我想这就是你要找的东西:
Tk.attributes("-fullscreen", True) # substitute `Tk` for whatever your `Tk()` object is called
您也可以使用wm_attributes 代替attributes。
然后只需绑定转义键并将其添加到处理程序:
Tk.attributes("-fullscreen", False)
另一个问题的答案暗示了这一点(wm_attributes)。所以,我就是这样发现的。但是,没有人直接出来说这是不知道为什么的答案。所以,我认为它值得发布。
这是一个工作示例(在 Xubuntu 14.04 上测试),它使用 F11 来打开和关闭全屏,而 escape 只会将其关闭:
import sys
if sys.version_info[0] == 2: # Just checking your Python version to import Tkinter properly.
from Tkinter import *
else:
from tkinter import *
class Fullscreen_Window:
def __init__(self):
self.tk = Tk()
self.tk.attributes('-zoomed', True) # This just maximizes it so we can see the window. It's nothing to do with fullscreen.
self.frame = Frame(self.tk)
self.frame.pack()
self.state = False
self.tk.bind("<F11>", self.toggle_fullscreen)
self.tk.bind("<Escape>", self.end_fullscreen)
def toggle_fullscreen(self, event=None):
self.state = not self.state # Just toggling the boolean
self.tk.attributes("-fullscreen", self.state)
return "break"
def end_fullscreen(self, event=None):
self.state = False
self.tk.attributes("-fullscreen", False)
return "break"
if __name__ == '__main__':
w = Fullscreen_Window()
w.tk.mainloop()
如果您也想隐藏菜单,我发现只有两种方法可以做到这一点。一是摧毁它。另一种是制作空白菜单进行切换。
self.tk.config(menu=self.blank_menu) # self.blank_menu is a Menu object
然后当您希望它再次显示时将其切换回您的菜单。
self.tk.config(menu=self.menu) # self.menu is your menu.