Ouvrir un toplevel sur l'écran secondaire

xunil2003 Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   -  
 Grimouare -
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 765 Date d'inscription   Statut Membre Dernière intervention   14
 
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   Statut Membre Dernière intervention   168
 
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 765 Date d'inscription   Statut Membre Dernière intervention   14
 
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   Statut Membre Dernière intervention   168
 
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 765 Date d'inscription   Statut Membre Dernière intervention   14
 
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
Grimouare
 
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