Afficher le mode plein écran sur Tkinter
Comment obtenir un cadre en Tkinter pour l'afficher en mode plein écran? ? ? J'ai vu ce code, c'est très pratique,
>>> import Tkinter
>>> root = Tkinter.Tk()
>>> root.overrideredirect(True)
>>> root.geometry("{0}x{1}+0+0".format(root.winfo_screenwidth(), root.winfo_screenheight()))
mais est-ce que c'est possible, quand J'appuie sur Esc qui "restaure" automatiquement la fenêtre ? Probablement c'est un code très compliqué , aide pls.
4 réponses
Cela crée une fenêtre plein écran. En appuyant sur Escape
redimensionne la fenêtre pour 200x200+0+0' par défaut. Si vous déplacez ou redimensionnez la fenêtre, Escape
basculement entre la géométrie actuelle et la géométrie précédente.
import Tkinter as tk
class FullScreenApp(object):
def __init__(self, master, **kwargs):
self.master=master
pad=3
self._geom='200x200+0+0'
master.geometry("{0}x{1}+0+0".format(
master.winfo_screenwidth()-pad, master.winfo_screenheight()-pad))
master.bind('<Escape>',self.toggle_geom)
def toggle_geom(self,event):
geom=self.master.winfo_geometry()
print(geom,self._geom)
self.master.geometry(self._geom)
self._geom=geom
root=tk.Tk()
app=FullScreenApp(root)
root.mainloop()
je pense que c'est ce que vous êtes à la recherche de:
Tk.attributes("-fullscreen", True) # substitute `Tk` for whatever your `Tk()` object is called
Vous pouvez utiliser wm_attributes
au lieu de attributes
, trop.
alors liez simplement la touche escape et ajoutez ceci au gestionnaire:
Tk.attributes("-fullscreen", False)
Une réponse à une autre question fait allusion à ceci (avec wm_attributes
). C'est donc ainsi que j'ai trouvé. Mais, personne, non seulement directement allé et a dit que c'était la réponse pour une raison quelconque. Donc, j'ai pensé qu'il valait la peine de poster.
Voici un exemple de travail (testé sur Xubuntu 14.04) qui utilise F11 pour activer et désactiver le plein écran et où escape l'éteindra seulement:
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()
si vous voulez cacher un menu, aussi, il n'y a que deux façons que j'ai trouvé pour le faire. L'un est pour la détruire. L'autre est de faire un menu vide pour basculer entre les.
self.tk.config(menu=self.blank_menu) # self.blank_menu is a Menu object
puis revenez à votre menu quand vous voulez qu'il apparaisse à nouveau.
self.tk.config(menu=self.menu) # self.menu is your menu.
je pense que si vous êtes à la recherche de fullscreen seulement, pas besoin de définir la géométrie ou maxsize etc.
Vous avez juste besoin de faire ceci:
-Si vous travaillez sur ubuntu:
root=tk.Tk()
root.attributes('-zoomed', True)
-et si vous travaillez sous windows:
root.state('zoomed')
maintenant pour basculer entre fullscreen, pour le minimiser vers taskbar vous pouvez utiliser:
Root.iconify()
cela va créer une fenêtre complètement plein écran sur mac (sans menubar visible) sans gâcher les liaisons clés
import tkinter as tk
root = tk.Tk()
root.overrideredirect(True)
root.overrideredirect(False)
root.attributes('-fullscreen',True)
root.mainloop()