Ouvrir un toplevel sur l'écran secondaire

xunil2003 Messages postés 766 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

5 réponses

  1. xunil2003 Messages postés 766 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
  2. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    Bonjour,

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


    As tu cherché sur Internet ?
    0
  3. xunil2003 Messages postés 766 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
  4. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. xunil2003 Messages postés 766 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
    1. 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