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

Tkinter Python Discussion :

deux actions avec un seul bouton tkinter lancer un shell et effacer frame contenant ce bouton [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    DBA Retraité
    Inscrit en
    Août 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : DBA Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 2
    Points : 5
    Points
    5
    Par défaut deux actions avec un seul bouton tkinter lancer un shell et effacer frame contenant ce bouton
    Bonjour,
    Débutant en python/tkinter je bloque sur ce détail.
    Je veux depuis un seul*bouton lancer un script shell et ensuite effacer la fenetre car elle reste afficher
    tout le temps du déroulement du script.
    Voici ce que j'ai pondu:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    #!/usr/bin/env python3
    # _*_ coding: utf8 _*_
     
    from tkinter import *
    import os
    import sys
     
    def go_bash():
        systeme()
        stop_run()
     
    def systeme():              # fonction pour exécuter pgm shell de sauvegarde du système
        ad1="/home/mikexubu/Perso-PGM-Infos/EssaisPgms/test24.sh"
        com=os.system(ad1)
     
    def stop_run():
        MFen.destroy()
     
    MFen = Tk()
    MFen.title("")              # sans module titre affiche d'office tk en titre
    MFen.geometry("360x380")
     
    # Pour faire un titre
    labelfont = ('times', 12, 'bold', 'italic')
    widget = Label(MFen, text='- CHOIX des ACTIONS -')
    widget.config(bg='yellow', fg='red')
    widget.config(font=labelfont)
    widget.pack(fill=X, pady=8)
     
    # zone1 définit une Frame
    zone1 = Frame(MFen , bg='#D9D9D9')
    bout1 = Button(zone1, text="SAUVEGARDE\n des DONNEES",
            bd=3, fg="#FF0000", bg="#FCFBCC" , command=go_bash)
    bout11 = Button(zone1, text="Sauvegarde\n du Système",
             bd=3, fg="black", bg="#B3D8D3", command=systeme)
    zone1.pack(pady=20)
    bout1.pack(side=LEFT, fill=Y, ipadx=30, ipady=15, padx=8)
    bout11.pack(side=LEFT, padx=2)
     
    MFen.mainloop()
    Merci pour vos lumières. J'espère que cela est faisable.

    nota: 19h00 je dois partir à la soupe. Je reprends demain matin pour voir le résultat

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 781
    Points
    36 781
    Par défaut
    Salut,

    Citation Envoyé par Miclagre Voir le message
    Merci pour vos lumières. J'espère que cela est faisable.
    Ce que vous appelez "actions", c'est juste l'appel de 2 fonctions.
    Qu'est ce qui vous empêche de créer une 3ème fonction qui appelle les 2 précédentes? C'est ce que vous avez déjà fait avec go_bash.... Mais dans go_bash, çà attend la fin de systeme avant de pouvoir appeler stop_run.

    Ce qui peut prendre un certain temps et geler l'interface graphique en attendant.
    La solution pourrait être d'utiliser subprocess.run pour ne pas être bloqué mais il va falloir quand même attendre car, dans ce cas, stop_run va terminer le programme avant que la commande bash soit terminée.

    Rien de bien compliqué mais pas mal de choses à comprendre (et à définir) pour le faire fonctionner.
    note: normalement, on affiche une progressbar histoire de faire patienter l'utilisateur en attendant que la commande se termine.

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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 07/03/2014, 19h09
  2. Lancer deux macros ou plus avec un seul bouton
    Par jpvba65 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/12/2013, 19h05
  3. Gérer deux actions pour un seul bouton SpeedButton
    Par ptitemeuh dans le forum Débuter
    Réponses: 8
    Dernier message: 04/07/2011, 10h44
  4. action avec un seul bouton sur plusieurs MC différents
    Par cece2000 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 22/04/2008, 11h33
  5. utiliser deux formulaire avec une seule action
    Par fouyou dans le forum Struts 1
    Réponses: 4
    Dernier message: 28/05/2007, 20h40

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