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

Python Discussion :

Problème avec des checkbuttons [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Développeur junior
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur junior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Par défaut Problème avec des checkbuttons
    Bonjour tout le monde.
    Je suis débutant en python. J'ai fait un tout petit programme, très simpliste, qui devrait ouvrir un logiciel pour chaque case
    à cocher, en cliquant sur un bouton. Je vous met l'image:
    Nom : toto2.JPG
Affichages : 98
Taille : 16,6 Ko

    ici le code (très simple et surement à améliorer... ) :

    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
    from tkinter import *
    from tkinter.messagebox import *
    import os
     
    def etat():
        if var1.get() and var2.get() and var3.get():
            os.startfile("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe")
            os.startfile("C:\\Program Files (x86)\\XnView\\xnview.exe")
            os.startfile("C:\\Program Files (x86)\\Notepad++\\notepad++.exe")
        else:
            showinfo('Attention', 'Aucun logiciel n\'a été selectionné!')
     
     
    window = Tk()
    window.title('toto')
     
    var1 = IntVar()
    var2 = IntVar()
    var3 = IntVar()
     
    bouton1 = Checkbutton(window, text = "logiciel 1", variable = var1).pack(side = LEFT, padx = 10, pady = 10)
    bouton2 = Checkbutton(window, text = "logiciel 2", variable = var2).pack(side = LEFT, padx = 10, pady = 10)
    bouton3 = Checkbutton(window, text = "logiciel 3", variable = var3).pack(side = LEFT, padx = 10, pady = 10)
    bouton4 = Button(window, text = "Lancer logiciels selectionnés", command = etat).pack(side = RIGHT, padx = 10, pady = 1)
     
    window.mainloop()
    Comme vous pouvez le voir, c'est dans la définition de la fonction etat que ça ne vas pas...
    Je voulais simplement faire en sorte que:
    -si une case est coché, un logiciel s'ouvre
    -si 2 cases sont cochés... devinez!... les deux logiciels s'ouvrent!!
    -etc...
    sinon si aucun est coché affichage de petit message d'avertissement...

    c'est dans la structure conditionnelle qui manque un poil...
    Pourriez vous m'éclairer? Je vous rapelle que je suis débutant, mais je suis convaincu que ce doit être simple...

    En tout cas merci d'avance pour vos conseils

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Et pourquoi tu ne sépares pas tes trois conditions ? Où est le soucis ?

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur junior
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur junior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Par défaut
    Salut VinsS
    Si je mets comme ça ça marche presque...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def etat():
        if var1.get(): 
            os.startfile("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe")
        if var2.get():
            os.startfile("C:\\Program Files (x86)\\XnView\\xnview.exe")
        if var3.get():
            os.startfile("C:\\Program Files (x86)\\Notepad++\\notepad++.exe")
        else:
            showinfo('Attention', 'Aucun logiciel n\'a été selectionné!')

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Ben oui mais, ton else n'est lié qu'au dernier if.

    Donc faut garder trace des deux autres if.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    def etat():
        select = 0
        if var1.get():
            os.startfile("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe")
            select = 1
        if var2.get():
            os.startfile("C:\\Program Files (x86)\\XnView\\xnview.exe")
            select = 1
        if var3.get():
            os.startfile("C:\\Program Files (x86)\\Notepad++\\notepad++.exe")
            select = 1
        if not select:
            showinfo('Attention', 'Aucun logiciel n\'a été selectionné!')
    Mais je vois que tu es sous Windows, on peut ouvrir plusieurs programmes en même temps sous Windows ?

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur junior
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur junior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Par défaut
    Merci VinsS

    Effectivement le else me posait problème...
    Mais je pensais qu'un if impliquait forcément un else... j'ai appris un nouveau truc
    Comme je t'ai dit, je débute vraiment...
    Comme je disais au début, ce devrait être un truc simple... et effectivement ça l'est.

    On peut ouvrir plusieurs logiciels au même temps sous windows

    Je te remercie.

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

Discussions similaires

  1. Problème avec des transaction
    Par Oluha dans le forum ASP
    Réponses: 16
    Dernier message: 01/03/2005, 15h40
  2. Problème avec des composants non déclarés
    Par vbcasimir dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/01/2005, 11h17
  3. Réponses: 5
    Dernier message: 19/08/2004, 11h11
  4. [STRUTS] Problème avec des ActionForm
    Par zarbydigital dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/03/2004, 13h49
  5. Problèmes avec des vues
    Par dady dans le forum MFC
    Réponses: 22
    Dernier message: 09/01/2004, 16h26

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