Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GUI Python Discussion :

Alternance fenetre premier plan


Sujet :

GUI Python

  1. #1
    Nouveau membre du Club
    Alternance fenetre premier plan
    Bonsoir,

    J'aimerais pouvoir effectuer la même chose que ce script bash mais en python, à savoir alterner l'affichage au premier plan de 2 fenêtres (une Chromium et l'autre Python3-Tkinter RFID) toutes les 60 secondes :
    Code bash :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/bin/bash
    fenetre1="Python3-Tkinter RFID"
    fenetre2="chromium"
    fenetreAff=fenetre1
    fenetre=1
    while true;
    do
        if [ $fenetre -eq 1 ]
        then
            fenetreAff=$fenetre2
            fenetre=2
        elif [ $fenetre -eq 2 ]
        then
            fenetreAff=$fenetre1
            fenetre=1
        fi
        wmctrl -a $fenetreAff
        sleep 60
    done

    Ce script fonctionne mais n'est pas suffisant car j'aimerais aussi faire passer le script "Python3-Tkinter RFID" (s'il ne l'est pas déjà) au premier plan lorsque quelqu'un badge. J'ai vu pas mal de choses pour alterner des fenêtres tkinter entre elles, mais je n'ai rien trouvé sur ce que je cherche à faire.

    Première question : Est-ce faisable ? Si oui, auriez-vous des pistes, ressources,... ?

    Merci pour votre aide

    EDIT : Une piste qui semble convenir : os.system(wmctrl -a "fenetre au premier plan") . Est-ce une bonne piste ou bien il y a mieux ?

  2. #2
    Expert éminent sénior
    Salut,

    Citation Envoyé par mao-40 Voir le message
    BEDIT : Une piste qui semble convenir : os.system(wmctrl -a "fenetre au premier plan") . Est-ce une bonne piste ou bien il y a mieux ?
    Si la question est de savoir comment lancer un programme externe depuis Python, os.system fonctionne bien qu'on lui préfèrera subprocess.Popen/.run/.call....

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau membre du Club
    Merci je lance et surveille mes scripts à l'aide de subprocess, check_ps_cmd, Popen, ma question concernait juste de permettre l'alternance d'affichage entre 2 fenêtres déjà ouvertes.
    Je m'en sors pour l'instant avec ceci dans le script principal :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    class Chrono(threading.Thread):
        def __init__(self):
            threading.Thread.__init__(self)
     
        def run(self):
            debutTime=time.time()
            fenAff=1
            while True:
                duree=time.time()-debutTime
                if (duree>60):
                    print(duree)
                    debutTime=time.time()
                    if fenAff == 1:
                        cmd = 'wmctrl -a Python Tkinter RFID'
                        fenAff = 2
                        os.system(cmd)
                        #print(cmd)
                    elif fenAff == 2:
                        cmd = 'wmctrl -a chromium'
                        fenAff = 1
                        #print(cmd)
                        os.system(cmd)


    Merci bien

###raw>template_hook.ano_emploi###