Tkinter Python maximise window

je veux initialiser une fenêtre maximisée, mais je ne trouve pas comment le faire. J'utilise python 3.3 et Tkinter 8.6 sur windows 7. Je suppose que la réponse est juste ici: http://www.tcl.tk/man/tcl/TkCmd/wm.htm#m8 mais je n'ai aucune idée de comment le saisir dans mon script python

en outre, je dois obtenir la largeur et la hauteur de la fenêtre (à la fois comme maximisé et si l'utilisateur re-échelle il après), mais je suppose que je peux juste le découvrir moi-même.

25
demandé sur Bryan Oakley 2013-04-13 01:17:31

5 réponses

si vous voulez définir L'attribut fullscreen à True, c'est aussi simple que:

root = Tk()
root.attributes('-fullscreen', True)

cependant, il ne montre pas la barre de titre. Si vous voulez le garder visible, vous pouvez redimensionner les Savoirs traditionnels élément geometry() méthode:

root = Tk()
w, h = root.winfo_screenwidth(), root.winfo_screenheight()
root.geometry("%dx%d+0+0" % (w, h))

winfo_width() et winfo_height() vous pouvez obtenir la largeur et la hauteur de la fenêtre, et vous pouvez également lier un gestionnaire d'événements pour l' <Configure> événement:

def resize(event):
    print("New size is: {}x{}".format(event.width, event.height))

root.bind("<Configure>", resize)
28
répondu A. Rodas 2013-04-12 23:26:39

Vous pouvez le faire en appelant

root.state('zoomed')
34
répondu kaboom 2014-03-18 14:52:08

pour afficher la fenêtre maximisée avec la barre de titre utilisez l'attribut 'zoomed'

root = Tk()
root.attributes('-zoomed', True)
23
répondu azeeman 2014-03-08 21:29:31

la première approche est d'utiliser le root.state('zoomed'), mais n'est pas censé être accessible à tous. Il fonctionne sur Windows, et sur ma machine Ubuntu. Cependant, sous ma machine à Arc, ce n'est pas le cas.


la seconde est de commencer par maxsize, puis définir la géométrie manuellement, comme:

m = root.maxsize()
root.geometry('{}x{}+0+0'.format(*m))

Cela fonctionne sur la plupart des machines, mais pas sur toutes. Par exemple, sous mon arc le maxsize() retourne (1425, 870), alors que la géométrie réelle de la fenêtre agrandie doit être (1440, 848). Donc, vous ne pouviez pas compter dessus.


Et la troisième, à mon avis, la meilleure approche est d'utiliser root.wm_attributes('-zoomed', 1). Il est disponible partout et semble être le plus sûr. Sur certaines machines, le zoom ne pouvait se faire que par la largeur ou par la hauteur, mais par rapport à la méthode précédente, celle-ci serait jamais vous donne une fenêtre partiellement à l'extérieur de l'écran.

enfin, si vous voulez un plein écran, pas seulement une fenêtre zoomée, utilisez root.wm_attributes('-fullscreen', 1). Il fournit un lien natif vers le comportement du gestionnaire de fenêtres, donc travailler beaucoup mieux, que de jouer avec overrideredirect et le réglage de la géométrie à la main (ce qui sur certaines plateformes pourrait conduire à une fenêtre non gérée, qui pourrait être fermée seulement par sa propre interface ou en tuant le processus, ne sera pas affiché sur la barre des tâches, etc...)

5
répondu thodnev 2016-08-25 22:22:54

La plupart des pythonic est" root.wm_state('zoomed'), comme mentionné par @J. F. Sebastian

1
répondu splinter 2016-12-01 17:44:36