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 :

click sur un bouton pour commande executée


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut click sur un bouton pour commande executée
    Bonsoir,

    Je cherche à executer une commande linux en cliquant sur un bouton, quelle commande dois utiliser?

    Merci par avance,

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut
    Je vous passe mon code, ca pourra peut-etre vous eclaircir.

    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
    #!/usr/bin/env python
     
    import os
    import Tkinter
     
     
    Manager=Tkinter.Tk()
     
    # Presentation du programme
     
    presentation=Tkinter.Label(Manager, text='Mise en route du programme NetworkManager')
    presentation.pack()
     
    # Programme d'execution
     
    def Network():
    	ad="su root -c /usr/sbin/NetworkManager"
    	com=os.system(ad)
     
    # Creation du bouton Network
     
    Bouton=Tkinter.Button(Manager, text='NetworkManager', command=Network, bg='yellow', fg='black')
    Bouton.pack()
    Manager.mainloop()
    Merci par avance

  3. #3
    Membre chevronné Avatar de cboudy
    Profil pro
    Ingénieur informatique industrielle
    Inscrit en
    Avril 2006
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique industrielle
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 407
    Par défaut
    il marche ton code, le problème c'est que la commande su a besoin du mot de passe admin

    si tu lance ton script depuis un terminal tu verras que "Password:" apparait lorsque tu cliques et qu'il faut le donner

    il doit être possible de passer automatiquement le mot de passe en faisant un pipe

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut
    Justement j'ai supprimé le mot de passe root, pour ne plus avoir la demande.

    Seulement quand je l'execute, cela ne fonctionne pas et je ne sais pas pourquoi.

    J'ai fais une modif pour l'avoir en mode graphique.

    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
    #!/usr/bin/env python
     
    import os
    import Tkinter
    import tkMessageBox
     
    Manager=Tkinter.Tk()
     
    # Presentation du programme
     
    presentation=Tkinter.Label(Manager, text='Mise en route du programme NetworkManager')
    presentation.pack()
     
    # Programme d'execution
     
    def Network():
    	ad="su root -c /usr/sbin/NetworkManager"
    	com=os.system(ad)
    	tkMessageBox.showinfo("INFO", "Fonctionnement de Network")
     
    # Creation du bouton Network
     
    Bouton=Tkinter.Button(Manager, text='NetworkManager', command=Network, bg='yellow', fg='black')
    Bouton.pack()
    Manager.mainloop()
    Quand je demarre mon PC j'ai bien mon programme qui s'execute, mais NetworkManager ne fonctionne toujours pas.

    Je ne comprend pas pourquoi

  5. #5
    Membre chevronné Avatar de cboudy
    Profil pro
    Ingénieur informatique industrielle
    Inscrit en
    Avril 2006
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique industrielle
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 407
    Par défaut
    es-tu sur que la commande os.system se passe bien ?
    il ne t'écrit rien dans la console ?

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut
    Justement je n'ai pas la console.

    Si je ne fais pas le programme graphiquement, la fenetre s'ouvre 1/10e de seconde et se referme aussitot.

    Graphiquement je vois la fenetre, je clik sur OK, mais apparement NetworkManager ne s'execute pas.


    J'ai aussi remplacer le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ad="su root -c /usr/sbin/NetworkManager"
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ad="su root -c NetworkManager"
    Et toujours pas le resultat attendu, la commande NetworkManager ne s'execute pas.

    Alors que si je le fais manuellement cela fonctionne tres bien.

    Bizarre, bizarre


Discussions similaires

  1. Simulation d'un click sur un bouton de commande
    Par Franck.H dans le forum VB.NET
    Réponses: 1
    Dernier message: 02/04/2014, 10h20
  2. Réponses: 4
    Dernier message: 01/02/2010, 09h50
  3. Réponses: 4
    Dernier message: 23/07/2007, 13h38
  4. PB de click sur un bouton de commande
    Par sam2007 dans le forum VBA Access
    Réponses: 3
    Dernier message: 17/07/2007, 07h42
  5. Réponses: 2
    Dernier message: 12/03/2007, 14h48

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