IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 37
    Points : 27
    Points
    27
    Par défaut 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
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 352
    Points : 36 879
    Points
    36 879
    Par défaut
    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

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 37
    Points : 27
    Points
    27
    Par défaut
    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

Discussions similaires

  1. Lubuntu fenetre premier plan ligne de commande
    Par RyzenOC dans le forum Ubuntu
    Réponses: 5
    Dernier message: 21/07/2015, 15h38
  2. Bloquer fenetre premier plan
    Par jmjmjm dans le forum Langage
    Réponses: 28
    Dernier message: 29/07/2011, 11h47
  3. Détecter fenetre premier plan ?
    Par Orthonic dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/05/2007, 06h32
  4. [débutant][JDialog] laisser la fenetre au premier plan ?
    Par Gromitou dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 03/09/2004, 11h33
  5. forcer une fenetre à etre au premier plan jusqu'a ...
    Par peppena dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 22/12/2003, 16h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo