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
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    14 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 14 485
    Points : 24 505
    Points
    24 505
    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
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  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, 16h38
  2. Bloquer fenetre premier plan
    Par jmjmjm dans le forum Langage
    Réponses: 28
    Dernier message: 29/07/2011, 12h47
  3. Détecter fenetre premier plan ?
    Par Orthonic dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/05/2007, 07h32
  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, 12h33
  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, 17h14

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