Я думаю, это то, что вы ищете:
Tk.attributes("-fullscreen", True) # substitute `Tk` for whatever your `Tk()` object is called
Вы также можете использовать wm_attributes
вместо attributes
.
Затем просто свяжите клавишу escape идобавьте это к обработчику:
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.