Ouvrir un toplevel sur l'écran secondaire

Fermé
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 - Modifié le 9 juin 2021 à 19:44
 Grimouare - 10 juin 2021 à 15:39
Bonjour,

Tous est dans le titre.
je suis sur python 3 tkinter sur distrib Linux unbuntu.
Et-i l possible d'ouvrir un toplevel sur l'écran secondaire uniquement ?

Merci d'avance pour vos avis et conseils .


Configuration: Linux / Firefox 89.0
A voir également:

5 réponses

xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
10 juin 2021 à 03:09
Voici le code. Comment indiquer sur écran secondaire.
def fenetre_pleinne_ecran():
    top1 = Toplevel()
    top1.title("test")
    top1.attributes('-fullscreen', 1)
    Label(top1, text="Ceci est un test toplevel pleinne ecran sur écran secondaire").grid(row=0, column=0)
    top1.bind('<Escape>',lambda e: root.destroy())
    top1.mainloop()
0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
10 juin 2021 à 10:22
Bonjour,

def fenetre_plein_ecran():
    "Ceci est un test toplevel plein ecran sur écran secondaire"


As tu cherché sur Internet ?
0
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
10 juin 2021 à 11:42
Bonjour,

Oui et je n'est pas trouvé de solution pour un toplevel.
sinon je peux faire ceci directement :
def fenetre_pleinne_ecran():
    root = Tk()
    root.attributes('-fullscreen', True)
    Label(root, text="Ceci est un test toplevel pleinne ecran sur moniteur 2 ").grid(row=0, column=0)
    root.bind('<Escape>',lambda e: root.destroy()) 

Mais j'ai besoin impérativement quelle s'ouvre sur le moniteur secondaire ?

Merci.
0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 10 juin 2021 à 12:02
remplacer top1 par root ne change rien: ce n'est qu'un nom de variable
on pourrait la remplacer par toto, ca ferait pareil ...

et c'est plein écran pas pleinne écran ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
Modifié le 10 juin 2021 à 12:54
re,

J'ai trouvé pour le deuxieme moniteur
def fenetre_pleinne_ecran():
    root = Tk()
    root.geometry('%dx%d+%d+%d'%(1920,1080,3840,0))
    root.attributes('-fullscreen', True)
    Label(root, text="Ceci est un test plein écran sur moniteur 2 ").grid(row=0, column=0)
    root.bind('<Escape>',lambda e: root.destroy()) 


Mais ce qui je ne sais pas c'est comment récupérer les valeurs du moniteur 2 automatiquement, donc ici 1920,1080,3840,0
root.geometry('%dx%d+%d+%d'%(1920,1080,3840,0))


pour connaitre la position des moniteurs, j'ai utilisé :
laurent@Laurent-I7-9900K:~/Programmes/rfxcmd-master$ xrandr -q
Screen 0: minimum 8 x 8, current 5760 x 1080, maximum 32767 x 32767
DVI-D-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 598mm x 336mm
   1920x1080     60.00*+  74.97    59.94    50.00  
   1680x1050     59.95  
   1600x1200     60.00  
   1440x900      74.98    59.89  
   1280x1024     75.02    60.02  
   1280x960      60.00  
   1280x720      60.00    59.94    50.00  
   1152x720      60.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-0 connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 544mm x 303mm
   1920x1080     60.00*+  74.97    59.94    50.00  
   1680x1050     59.95  
   1600x1200     60.00  
   1440x900      74.98    59.89  
   1280x1024     75.02    60.02  
   1280x960      60.00  
   1280x720      60.00    59.94    50.00  
   1152x720      59.97  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 connected 1920x1080+3840+0 (normal left inverted right x axis y axis) 544mm x 303mm
   1920x1080     60.00*+  59.94    50.00  
   1680x1050     59.95  
   1600x1200     60.00  
   1440x900      74.98    59.89  
   1280x1024     75.02    60.02  
   1280x960      60.00  
   1280x720      60.00    59.94    50.00  
   1152x720      60.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
laurent@Laurent-I7-9900K:~/Programmes/rfxcmd-master$ 



Merci.
0
Bonjour.

En regardant la doc, je n'ai pas vu de moyen de faire que la fenêtre root s'ouvre sur un écran et une toplevel sur un autre, faudrait regarder directement dans la doc tcl et tk pour s'en assurer.

Si tu n'as besoin de récupérer que la dimension 1920x1080+3840+0 via une commande système, alors subprocess + re

import subprocess
import re

out = subprocess.check_output(('xrandr', '-q')).decode()

res = re.search('DP-\d +connected (\d{4}x\d{4}\+\d{1,4}\+\d{1,4})', out)
print(res[1])


Que tu peux fournir directement à geometry sans passer par format.
0