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 :

Passer en variable la valeur des boutons radio


Sujet :

Tkinter Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut Passer en variable la valeur des boutons radio
    bonjour,

    Je suis débutant python, mon gui est tkinter, je suis sur python 2.7.3.
    Je créé une fonction dans là quel j'ai des boutons radio.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def appui_touches():
        choix_1 = Radiobutton(fen1, text="Appui prolongé",variable=var_choix, value="false")
        choix_2 = Radiobutton(fen1, text="Appui cour",variable=var_choix, value="true")
        choix_3 = Radiobutton(fen1, text="Appui répété",variable=var_choix, value="<n>")
        choix_1.pack()
        choix_2.pack()
        choix_3.pack()
        a = var_choix.get()
        Button(fen1,text='Quitter', command =fen1.destroy).pack(side= 'top')
        fen1.mainloop()
    Là où je bloque est que je n'arrive pas à récupérer la valeur du bouton radio afin de la mettre en variable ?
    J'ai vérifé rien ne s'affiche ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print " valeur variable a : ", a
    python m'affiche aucun message.


    Que faut-il faire ?

    Merci.
    Intel I7 960 | 6 Go Ram | 5 HDD au total 3636 Go | Windows 7 Edition intégral x64 | WampServer 2.0c | Apache 2.2.8 | Php 5.2.6 | MySQL 5.0.51b
    DreamPlug | 512 mo ram | SSD 16 GO | Linux debian 2.6.39.4 | armv5tel | Lamp | PHP 5.3.3-7 | Apache 2.2.16 | Mysql 14.14

  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 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par xunil2003 Voir le message
    Que faut-il faire ?
    A la base, on a:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >>> import tkinter as tk
    >>> app = tk.Tk()
    >>> variable = tk.IntVar()
    >>> tk.Radiobutton(text='foo', variable=variable, value=1).pack()
    >>> tk.Radiobutton(text='bar', variable=variable, value=2).pack()
    >>> variable.get()
    0
    >>> # click on "foo"
    ...
    >>> variable.get()
    1
    >>>
    Une fois lancée la .mainloop, seuls les callbacks seront déclenchés et iront (ou pas) exécuter un variable.get().
    Un callback est une "fonction":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> def showvalue():
    ...     print (variable.get())
    ...
    >>> tk.Button(text='show', command=showvalue).pack()
    Prenez le temps de lire le chapitre 10 du Swinnen, il explique comment fonctionne un GUI.

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

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut
    Bonsoir,

    J'ai fait plein de recherche sur le net, mais je n'arrive pas à comprendre d'où vient le problème.

    j'ai fais un test dans un nouveau fichier "test.py" avec ceci :
    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
    import Tkinter as Tk
     
    def appui_touches():
            import Tkinter
     	fn = Tkinter.Tk()
    	global appui
    	appui = Tkinter.StringVar()
    	Tkinter.Label(fn, text ="Cochez le type d'appui des touches").grid(row = 0, column = 0)
    	Tkinter.Radiobutton(fn, text="Appui prolonge", variable=appui, value="false", command=type_appui).grid(row = 1, column = 0)
    	Tkinter.Radiobutton(fn, text="Appui cour", variable=appui, value="tue", command=type_appui).grid(row = 1, column = 1)
    	Tkinter.Radiobutton(fn, text="Appui repete", variable=appui, value="<n>", command=type_appui).grid(row = 2, column = 0)
    	Tkinter.Button(fn, text ="APPLIQUER", command=fn.destroy).grid(row = 3, column = 1)
    	fn.mainloop()
     
    def type_appui():
    	print "Type d'appui :", appui.get()
     
     
    appui_touches()
    Là ça marche quand je clique sur chacun des boutons radio.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    laurent@MSI-GT683:~/python/fbx_v6$ python test.py
    Type d'appui :  false
    Type d'appui :  true
    Type d'appui :  <n>
    laurent@MSI-GT683:~/python/fbx_v6$

    Maintenant dans mon code :
    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 appui_touches():
            import Tkinter
     	fn = Tkinter.Tk()
    	global appui
    	appui = Tkinter.StringVar()
    	Tkinter.Label(fn, text ="Cochez le type d'appui des touches").grid(row = 0, column = 0)
    	Tkinter.Radiobutton(fn, text="Appui prolonge", variable=appui, value="false", command=type_appui).grid(row = 1, column = 0)
    	Tkinter.Radiobutton(fn, text="Appui cour", variable=appui, value="tue", command=type_appui).grid(row = 1, column = 1)
    	Tkinter.Radiobutton(fn, text="Appui repete", variable=appui, value="<n>", command=type_appui).grid(row = 2, column = 0)
    	Tkinter.Button(fn, text ="APPLIQUER", command=fn.destroy).grid(row = 3, column = 1)
    	fn.mainloop()
     
    def type_appui():
    	print "Type d'appui :", appui.get()
    j'ai aussi essaye avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "Type d'appui : %s" % appui.get()
    Même en cliquant sur chacun des boutons radio, la variable est vide.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    laurent@MSI-GT683:~/python/fbx_v6$ python appli6.py
    Type d'appui : 
    Type d'appui :
    Type d'appui : 
    laurent@MSI-GT683:~/python/fbx_v6$
    Je ne sais pas pourquoi ça marche dans mon code ?
    Qu'est-ce qui peut provoquer ceci

    Merci.
    Intel I7 960 | 6 Go Ram | 5 HDD au total 3636 Go | Windows 7 Edition intégral x64 | WampServer 2.0c | Apache 2.2.8 | Php 5.2.6 | MySQL 5.0.51b
    DreamPlug | 512 mo ram | SSD 16 GO | Linux debian 2.6.39.4 | armv5tel | Lamp | PHP 5.3.3-7 | Apache 2.2.16 | Mysql 14.14

  4. #4
    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 776
    Points
    36 776
    Par défaut
    Salut,

    Le deuxième code (celui que vous dites "ne fonctionne pas") fonctionne très bien (chez moi).

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

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut
    bonjour,

    Oui pareil pour moi.
    Ca marche dans un nouveau fichier, mais dans mon code existant non, la variable est vide , impossible de récupérer la valeur de mes radiobutton.
    Qu'es-ce qui peut provoquer ceci ?

    Merci
    Intel I7 960 | 6 Go Ram | 5 HDD au total 3636 Go | Windows 7 Edition intégral x64 | WampServer 2.0c | Apache 2.2.8 | Php 5.2.6 | MySQL 5.0.51b
    DreamPlug | 512 mo ram | SSD 16 GO | Linux debian 2.6.39.4 | armv5tel | Lamp | PHP 5.3.3-7 | Apache 2.2.16 | Mysql 14.14

  6. #6
    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 776
    Points
    36 776
    Par défaut
    Citation Envoyé par xunil2003 Voir le message
    Ca marche dans un nouveau fichier, mais dans mon code existant non, la variable est vide , impossible de récupérer la valeur de mes radiobutton.
    Qu'es-ce qui peut provoquer ceci ?
    Postez le code qui ne marche pas, ce sera plus simple que de "deviner".

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

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut
    Bonsoir,

    Voici le lien du code complet.
    http://code.empreintesduweb.com/8024.html

    Merci.
    Intel I7 960 | 6 Go Ram | 5 HDD au total 3636 Go | Windows 7 Edition intégral x64 | WampServer 2.0c | Apache 2.2.8 | Php 5.2.6 | MySQL 5.0.51b
    DreamPlug | 512 mo ram | SSD 16 GO | Linux debian 2.6.39.4 | armv5tel | Lamp | PHP 5.3.3-7 | Apache 2.2.16 | Mysql 14.14

  8. #8
    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 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par xunil2003 Voir le message
    Voici le lien du code complet.
    http://code.empreintesduweb.com/8024.html
    Vous aviez déjà posté à propos de ce code!
    La réponse est identique: une seule instance de Tk!

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

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut
    Bonsoir,

    Exact, j'ai rectifié.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def appui_touches():
            import Tkinter
            filewin = Toplevel(fenetre)
    	global appui
    	appui = Tkinter.StringVar()
    	Tkinter.Label(filewin, text ="Cochez le type d'appui des touches").grid(row = 0, column = 0)
    	Tkinter.Radiobutton(filewin, text="Appui prolonge", variable=appui, value="false", command=type_appui).grid(row = 1, column = 0)
    	Tkinter.Radiobutton(filewin, text="Appui cour", variable=appui, value="tue", command=type_appui).grid(row = 1, column = 1)
    	Tkinter.Radiobutton(filewin, text="Appui repete", variable=appui, value="<n>", command=type_appui).grid(row = 2, column = 0)
    	Tkinter.Button(filewin, text ="APPLIQUER", command=fenetre.destroy).grid(row = 3, column = 1)
    	filewin.mainloop()
    Merci.
    Intel I7 960 | 6 Go Ram | 5 HDD au total 3636 Go | Windows 7 Edition intégral x64 | WampServer 2.0c | Apache 2.2.8 | Php 5.2.6 | MySQL 5.0.51b
    DreamPlug | 512 mo ram | SSD 16 GO | Linux debian 2.6.39.4 | armv5tel | Lamp | PHP 5.3.3-7 | Apache 2.2.16 | Mysql 14.14

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

Discussions similaires

  1. Choix d'une valeur modifie des boutons radios
    Par hyper123 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/03/2013, 09h43
  2. Réponses: 10
    Dernier message: 09/11/2009, 18h17
  3. Réponses: 7
    Dernier message: 18/10/2006, 21h34
  4. Valeur pour des checkbox et des boutons radio pour MySQL
    Par mounirha dans le forum Administration
    Réponses: 1
    Dernier message: 18/04/2006, 23h54
  5. [Debutant] Pb avec récupération valeurs des boutons radio
    Par Jibees dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/03/2006, 14h25

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