Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

(TKinter) Ouvrir la fenêtre à un endroit précis de l'écran...

5 réponses
Avatar
Yann.K
Bonjour à tous.

Nouveau sur cette liste (et avec python) j'essaye de me débattre avec mes
problémes à dix sous...

Je bosse avec de la doc télechargée sur le net, et j'essaye actuellement
d'interfacer une appli écrite en shell (je vais la réecrire en python dès
que possible, je suis juste en train de prendre en main l'interfaçage
graphique python/Tkinter).

Je rencontre actuellement le problèmes suivant: les fenêtres se positionnent
de façon aléatoire à l'ouverture.
Est-il possible de positionner avec précisision la fenêtre par rapport à
l'écran?
Cela est valable pour la fenêtre principale (celle instanciée par Tk()),
mais également par ses "enfants".

Merci de votre aide.



--
Yann.K

5 réponses

Avatar
Eric Brunel
Yann.K wrote:
Bonjour à tous.

Nouveau sur cette liste (et avec python) j'essaye de me débattre avec mes
problémes à dix sous...

Je bosse avec de la doc télechargée sur le net, et j'essaye actuellement
d'interfacer une appli écrite en shell (je vais la réecrire en python dès
que possible, je suis juste en train de prendre en main l'interfaçage
graphique python/Tkinter).

Je rencontre actuellement le problèmes suivant: les fenêtres se positionnent
de façon aléatoire à l'ouverture.
Est-il possible de positionner avec précisision la fenêtre par rapport à
l'écran?
Cela est valable pour la fenêtre principale (celle instanciée par Tk()),
mais également par ses "enfants".

Merci de votre aide.


Utilise la méthode geometry sur l'instance de Tk ou les instances de Toplevel:

from Tkinter import *
root = Tk()
root.geometry('500x300+50+10')
root.mainloop()

=> la fenetre fera 500 points de large par 300 de haut et sera positionnée à la
coordonnée (50, 10) sur l'écran.

HTH
--
- Eric Brunel <eric (underscore) brunel (at) despammed (dot) com> -
PragmaDev : Real Time Software Development Tools - http://www.pragmadev.com

Avatar
Yann.K
Eric Brunel wrote:

Yann.K wrote:
root.geometry('500x300+50+10')
=> la fenetre fera 500 points de large par 300 de haut et sera positionnée
à la coordonnée (50, 10) sur l'écran.
Merci, c'est exactement ce que je cherchais, à un détail prét, comment

récupérer la taille de l'écran (H+L) pour pouvoir placer cette fenêtre en
relatif (par exemple exactement au centre de l'écran et ce , quelle que
soit la taille de l'écran sur lequel tournera l'appli).


Question subsidiaire; pour éxecuter directement des commandes systéme, il
faut bien utiliser la commande os.popen()?

HTH
yes!



--
Yann.K

Avatar
Eric Brunel
Yann.K wrote:
Eric Brunel wrote:


Yann.K wrote:
root.geometry('500x300+50+10')
=> la fenetre fera 500 points de large par 300 de haut et sera positionnée
à la coordonnée (50, 10) sur l'écran.


Merci, c'est exactement ce que je cherchais, à un détail prét, comment
récupérer la taille de l'écran (H+L) pour pouvoir placer cette fenêtre en
relatif (par exemple exactement au centre de l'écran et ce , quelle que
soit la taille de l'écran sur lequel tournera l'appli).


Les méthodes winfo_screenwidth() et winfo_screenheight() sont ce que tu
cherches. Et si tu n'as pas encore l'adresse, voilà où tu pourras trouver plein
de choses interessantes:
http://www.pythonware.com/library/tkinter/introduction/index.htm
(pour les non-anglophobes)

Question subsidiaire; pour éxecuter directement des commandes systéme, il
faut bien utiliser la commande os.popen()?


"Il faut", non; "on peut", oui: pour simplement exécuter une commande système,
c'est plutot os.system qu'il te faut. Utilise os.popen pour exécuter la commande
*et* récupérer sa sortie ou lui envoyer quelque-chose. Mais sans savoir
exactement ce que tu veux faire, c'est un peu difficile de t'orienter plus
précisément.
--
- Eric Brunel <eric (underscore) brunel (at) despammed (dot) com> -
PragmaDev : Real Time Software Development Tools - http://www.pragmadev.com


Avatar
Yann.K
Eric Brunel wrote:

Yann.K wrote:
Les méthodes winfo_screenwidth() et winfo_screenheight() sont ce que tu
cherches.
Parfait!

Une petite méthode plus loin, mes fenêtres s'ouvrent en plein milieu de
l'écran!

Et si tu n'as pas encore l'adresse, voilà où tu pourras trouver
plein de choses interessantes:
http://www.pythonware.com/library/tkinter/introduction/index.htm
(pour les non-anglophobes)
Une doc parmis tant d'autres qui dorment sur ma table de chevet ;-)


"Il faut", non; "on peut", oui: pour simplement exécuter une commande
système, c'est plutot os.system qu'il te faut. Utilise os.popen pour
exécuter la commande *et* récupérer sa sortie ou lui envoyer
quelque-chose. Mais sans savoir exactement ce que tu veux faire, c'est un
peu difficile de t'orienter plus précisément.
Bon, y-a encore du boulot!

J'ai commencé hier a éplucher en long, en large et en travers la doc
officielle de python.
Donc,... je continue!


Merci encore pour ton aide.

--
Yann.K

Avatar
Alexandre Fayolle
Salut,

Le 23-08-2004, Yann.K a écrit :
Merci, c'est exactement ce que je cherchais, à un détail prét, comment
récupérer la taille de l'écran (H+L) pour pouvoir placer cette fenêtre en
relatif (par exemple exactement au centre de l'écran et ce , quelle que
soit la taille de l'écran sur lequel tournera l'appli).


Fais attention à un petit détail quand même. Le jour où quelqu'un va essayer
de faire tourner ton programme sur une machine avec 2 écrans, ça risque
de pas être joli, voire pénible. Il vaut probablement mieux configurer
ton gestionnaire de fenêtre pour adapter le placement de la fenêtre
principale de ton application.


--
Alexandre Fayolle LOGILAB, Paris (France).
http://www.logilab.com http://www.logilab.fr http://www.logilab.org