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 :

2 semaines avec Radiobutton et RAS/BOL


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut 2 semaines avec Radiobutton et RAS/BOL
    Bonjour
    J'ai des difficultés à trouver la méthode de lecture de la sélection du groupe de boutons
    Je voudrais bien afficher le choix mémorisé à l'aide de "Entry", par l'intermédiaire de "def yoiioiioy(self)xradfan=" ?

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    #!/usr/bin/env python 
    # -*- coding: utf-8 -*-
    # *
    from tkinter import *
     
    class Gammique(Tk):
            """ Ramification Gammique """
            def __init__(self):
                    Tk.__init__(self)
                    "Tableau de bord"
                    self.title('Entité Gammique :')
     
                    # Fenêtre écran_résultat
                    self.can=Canvas(self,bg='white', height=500,width=800)
                    self.can.pack(side=RIGHT)
                    # Bouton quitter
                    Button(self, text='Quitter',bg='light grey',width=15,
                                       command=self.destroy).pack(side=BOTTOM)
     
                    # Mémoire d'octave fantôme              # Utilisée pour mémoriser
                    self.ent= Entry(self)                   # l'octave antérieure. 
                    self.ent.pack()                         #
                    #self.ent.pack_forget()# Pantomime      #
                    self.ent.delete(0,END)                  #
                    self.ent.insert(END,"IOI")              #
     
                    # Groupe Octave RADIO
                    self.rad=[
                            Radiobutton(
                                    self,
                                    variable=variable,
                                    text=text,
                                    value=value,
                                    command=command,
                            )for (variable, text, value,command) in (
                                    ("yioiy","Octave +1", "ioy",self.yoiioiioy),
                                    ("yioiy","Octave  0", "ioi",self.yoiioiioy),
                                    ("yioiy","Octave -1", "yoi",self.yoiioiioy),
                            )
                    ]
                    for i in self.rad: i.pack()
                    self.rad[1].invoke()
            # __init__()
     
            # Les octaves du groupe RADIO
            def yoiioiioy(self):
                    xradfan="0"
                    self.ent.delete(0,END)
                    self.ent.insert(END,xradfan)
                    print ('*')
    # class Gammique 
    Gammique().mainloop()

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 761
    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 761
    Par défaut
    Salut,

    Citation Envoyé par toumus Voir le message
    Je voudrais bien afficher le choix mémorisé à l'aide de "Entry", par l'intermédiaire de "def yoiioiioy(self)xradfan="
    Ben, lorsque le radiobutton est sélectionné, la value qu'on a passé à la construction devient "valeur" de la variable associée.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import tkinter as tk
     
    root = tk.Tk()
    variable = tk.StringVar()
    def show_variable():
        print (variable.get())
    for s in ('aaa', 'bbb', 'ccc'):
        tk.Radiobutton(text=s, value=s, variable=variable, command=show_variable).pack()
    tk.mainloop()
    Reste à corriger votre code pour que soit associée une vraie variable (et non une chaine de caractère...) et de la lire dans la commande qui est déclenchée lorsqu'on clique sur un des boutons.

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

  3. #3
    Invité
    Invité(e)
    Par défaut
    J'ai fait de mon mieux, çà marche mais il n'y a pas de sélection d'entrée, et le survol sélectionne.
    C'est OK tant que je ne clique pas dessus


    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
    42
    43
    44
     
    #!/usr/bin/env python 
    # -*- coding: utf-8 -*-
    # *
    from tkinter import *
     
    class Gammique(Tk):
            """ Ramification Gammique """
            def __init__(self):
                    Tk.__init__(self)
                    "Tableau de bord"
                    self.title('Entité Gammique :')
     
                    # Fenêtre écran_résultat
                    self.can=Canvas(self,bg='white', height=500,width=800)
                    self.can.pack(side=RIGHT)
                    # Bouton quitter
                    Button(self, text='Quitter',bg='light grey',width=15,
                                       command=self.destroy).pack(side=BOTTOM)
     
                    # Mémoire d'octave fantôme              # Utilisée pour mémoriser
                    self.ent= Entry(self)                   # l'octave antérieure. 
                    self.ent.pack()                         #
                    #self.ent.pack_forget()# Pantomime      #
                    self.ent.delete(0,END)                  #
                    self.ent.insert(END,"IOI")              #
     
                    etiqs=["Octave -1","Octave  0","Octave +1"]
                    valse=["YOI","IOI","IOY"]
                    variable=StringVar()
                    # Groupe Octave RADIO
                    for i in [0,1,2]:
                            self.rad=Radiobutton(self,variable=variable,text=etiqs[i],value=valse[i],command=self.yoiioiioy)
                            self.rad.pack()
            # __init__()
     
            # Les octaves du groupe RADIO
            def yoiioiioy(self):
                    xradfan=variable.get()
                    self.ent.delete(0,END)
                    self.ent.insert(END,xradfan)
                    print ('*')
    # class Gammique 
    Gammique().mainloop()
    Message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> 
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__
        return self.func(*args)
      File "C:/Users/Vincent/Documents/developpez/develHM/racines/progamv1alpharadiobutton2.py", line 38, in yoiioiioy
        xradfan=variable.get()
    NameError: name 'variable' is not defined
    >>>

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 761
    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 761
    Par défaut
    Salut,

    Lorsque vous écrivez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            def __init__(self):
                    ...
                    valse=["YOI","IOI","IOY"]
                    variable=StringVar()
                    ...
    La portée des variables "valse" et "variable" sera "locale" à la fonction/méthode __init__.
    Mettez "self" devant pour en faire des "attributs" de l'instance de Gammique.
    Ça devrait fonctionner "mieux".
    note: et je ne comprends pas pourquoi vous vous êtes embarqué à créer une "class": non seulement vraiment besoin mais en plus vous ne semblez pas en maîtrisez les implications.

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

  5. #5
    Invité
    Invité(e)
    Par défaut
    Je vous remercie de votre agréable assistance
    Tout compte fait, on doit me répéter souvent les mêmes choses pour les retenir.
    L'expérience en fait :^)

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    #!/usr/bin/env python 
    # -*- coding: utf-8 -*-
    # *
    from tkinter import *
     
    class Gammique(Tk):
            """ Ramification Gammique """
            def __init__(self):
                    Tk.__init__(self)
                    "Tableau de bord"
                    self.title('Entité Gammique :')
     
                    # Fenêtre écran_résultat
                    self.can=Canvas(self,bg='white', height=500,width=800)
                    self.can.pack(side=RIGHT)
                    # Bouton quitter
                    Button(self, text='Quitter',bg='light grey',width=15,
                                       command=self.destroy).pack(side=BOTTOM)
     
                    # Mémoire d'octave fantôme              # Utilisée pour mémoriser
                    self.ent= Entry(self)                   # l'octave antérieure. 
                    self.ent.pack()                         #
                    #self.ent.pack_forget()# Pantomime      #
                    self.ent.delete(0,END)                  #
                    self.ent.insert(END,"IOI")              #
     
                    # Groupe Octave RADIO
                    self.etiqs=["Octave -1","Octave  0","Octave +1"]
                    self.valse=["YOI","IOI","IOY"]
                    self.variable=StringVar()
                    self.rad=[
                            Radiobutton(
                                    self,
                                    variable=variable,
                                    text=text,
                                    value=value,
                                    command=command,
                            )for (variable, text, value,command) in (
                                    (self.variable,self.etiqs[0],self.valse[0],self.yoiioiioy),
                                    (self.variable,self.etiqs[1],self.valse[1],self.yoiioiioy),
                                    (self.variable,self.etiqs[2],self.valse[2],self.yoiioiioy),
                            )
                    ]
                    for i in self.rad: i.pack()
                    self.rad[1].select()
            # __init__()
     
            # Les octaves du groupe RADIO
            def yoiioiioy(self):
                    xradfan=self.variable.get()
                    self.ent.delete(0,END)
                    self.ent.insert(END,xradfan)
                    print ('*')
    # class Gammique 
    Gammique().mainloop()

  6. #6
    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,

    Ce n'est pas encore ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                    self.rad=[
                            Radiobutton(
                                    self,
                                    variable=variable,
    mais ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                    self.rad = [Radiobutton(self,  variable=self.variable,

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/03/2008, 08h34
  2. Problème avec RadioButton dans une DataList
    Par luimême dans le forum ASP.NET
    Réponses: 1
    Dernier message: 13/11/2007, 10h54
  3. petit problème avec RadioButtons et event :-(
    Par Thundereagle dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 29/09/2007, 12h39
  4. Changement du jour de la semaine avec java.util.GregorianCalendar
    Par Alexandre T dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 10/09/2007, 10h01
  5. controle listbox avec radiobuttons
    Par gbardy dans le forum MFC
    Réponses: 2
    Dernier message: 28/08/2006, 14h27

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