2017-05-10 3 views
1

Je cherche un moyen de créer une fenêtre en plein écran et ne pas afficher la console (ou les bordures), et d'échapper à l'écran lorsque vous appuyez sur 'escape'. J'ai essayé de renommer l'extension de 'py' à 'pyw', mais il n'a pas caché la barre latérale as some suggested.python plein écran sans console/bordures

Voici mon code pour agrandir la fenêtre, mais il ne cache pas la console:

def __init__(master): #I'm using tkinter for my GUI 
    master = master 
    width, height = master.winfo_screenwidth(), master.winfo_screenheight() 
    master.geometry("%dx%d+0+0" % (width, height)) 

En outre, je dois utiliser le script sur Mac et Windows, sont-ils fonctionnent différemment si je besoin de cacher la console?

J'ai essayé overrideredirect(True), mais cela ne me permet pas d'utiliser le clavier, ce qui est requis pour ma tâche. J'ai également essayé wm_attributes('-fullscreen', True), mais il ne crée pas exactement en plein écran, il y a une place vide en haut où la barre des tâches Mac existait. enter image description here

Alors est-ce qu'il y a un moyen qui me permet d'utiliser le plein écran sans la barre d'outils (MacOS), et le clavier fonctionne?

Merci!

Répondre

1

Comment parler pour la résolution de l'écran:

from Tkinter import * 
import ttk 

def escape(root): 
     root.geometry("200x200") 

def fullscreen(root): 
     width, height = root.winfo_screenwidth(), root.winfo_screenheight() 
     root.geometry("%dx%d+0+0" % (width, height)) 

master = Tk() 
width, height = master.winfo_screenwidth(), master.winfo_screenheight() 
master.geometry("%dx%d+0+0" % (width, height)) 
master.bind("<Escape>", lambda a :escape(master)) 
#Added this for fun, when you'll press F1 it will return to a full screen. 
master.bind("<F1>", lambda b: fullscreen(master)) 
master.mainloop() 

Et cela sans frontière (prise de here):

import tkinter as tk 
root = tk.Tk() 
root.attributes('-alpha', 0.0) #For icon 
#root.lower() 
root.iconify() 
window = tk.Toplevel(root) 
window.geometry("100x100") #Whatever size 
window.overrideredirect(1) #Remove border 
#window.attributes('-topmost', 1) 
#Whatever buttons, etc 
close = tk.Button(window, text = "Close Window", command = lambda: root.destroy()) 
close.pack(fill = tk.BOTH, expand = 1) 
window.mainloop() 

La seule solution pour la console est d'enregistrer le fichier. pyw comme vous avez déjà lu. Vous pouvez également essayer de remplacer les fonctions Tk en utilisant overrideredirect(1) mais cela serait plus compliqué.

Espérons que cela vous aidera, Yahli.

+1

Merci Monsieur Yahli! 'overrideredirect (1)' fait passer la fenêtre en plein écran. Mais il semble que cela ne fonctionne que sur Windows, mais pas sur MacOS (barre d'outils supérieure montre encore). Savez-vous s'il y a du travail sur Mac? – Kay

+0

Heureux que je puisse vous aider, envisager d'accepter ma réponse si vous l'avez trouvé assez bon :) En ce qui concerne votre question - je vais essayer ce 'self.tk._w.wm_attributes (fullscreen = 'true')' et ce 'tl.tk .call (":: tk :: non pris en charge :: MacWindowStyle", "style", tl._w, "plain", "none") '(je l'ai pris de [ici] (https://bytes.com/topic/python/answers/825270-tkinter-fullscreen-mac-os-x)). Je ne possède pas de Mac alors malheureusement je ne peux pas déboguer ces méthodes pour savoir lequel fonctionne le mieux. Essayez-les, et laissez-moi savoir :) –