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 :

Problème avec radiobutton


Sujet :

Tkinter Python

  1. #1
    Membre confirmé
    Homme Profil pro
    débutant
    Inscrit en
    Février 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : débutant
    Secteur : Alimentation

    Informations forums :
    Inscription : Février 2012
    Messages : 88
    Par défaut Problème avec radiobutton
    Bonjour,
    système : windows7, 64 bits
    Python 3.2.2
    exemple : 1 module nommé "lance", et 1 module nommé "radiobase"
    quand je lance le module "radiobase" seul, il se comporte comme je l'attends c'est à dire : quand je clique sur un des boutons radio il me retourne la valeur de var dans le label.
    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
    #module radiobase.py
    import tkinter as Tk
     
    class feuille(Tk.Tk):
        """Classe pour la feuille"""
        def __init__(self):
            Tk.Tk.__init__(self)
            self.eti=Tk.Label(self)
            self.eti.pack()
            self.var=Tk.IntVar()
            self.rb0=Tk.Radiobutton (self, text = "Radio 1" , variable = self.var,value=1,command=self.voir)
            self.rb1=Tk.Radiobutton (self, text = "Radio 2" , variable = self.var,value=2,command=self.voir)
            self.rb0.pack()
            self.rb1.pack()
     
        def voir(self):
            self.eti.configure(text=self.var.get())
     
    if __name__ == '__main__':
        f=feuille()
        f.mainloop()
    Mon autre module (lance) lui doit me lancer en cliquant sur le bouton "bt" le module "radiobase".

    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
    #module lance.py
    import tkinter as Tk 
    from radiobase import *
     
    class root(Tk.Tk):
        """Classe pour la feuille"""
        def __init__(self):
            Tk.Tk.__init__(self)
            bt=Tk.Button(self,text='Lancer fenetre radion',width=30,height=5,command=self.lancer)
            bt.pack()
     
        def lancer(self):
            b=feuille()
     
    if __name__ == '__main__':
        a=root()
        a.mainloop()
    Et là les "radiobuton" ne se comportent plus comme je le veux
    Merci d'avance de vos explications

  2. #2
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class feuille(Tk.Toplevel):
        """Classe pour la feuille"""
        def __init__(self):
            Tk.Toplevel.__init__(self)
    Pas deux instances Tk en même temps sinon self.var est attaché à la première.
    Sinon self.var=Tk.IntVar(self) mais restez sur la première proposition: une seule instance Tk.

    @+

  3. #3
    Membre confirmé
    Homme Profil pro
    débutant
    Inscrit en
    Février 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : débutant
    Secteur : Alimentation

    Informations forums :
    Inscription : Février 2012
    Messages : 88
    Par défaut [résolu]
    Merci beaucoup, pour cette réponse rapide et efficace
    rob-42

  4. #4
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Quelques print pour comprendre

    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
    #module radiobase.py
    import tkinter as Tk
     
    class feuille(Tk.Tk):
        """Classe pour la feuille"""
        def __init__(self):
            Tk.Tk.__init__(self)
            self.eti=Tk.Label(self)
            self.eti.pack()
            self.var=Tk.IntVar()
            print("id de l'objet feuille : %d" % id(self))
            print("id du _master de self.var : %d" % id(self.var._master))
            self.rb0=Tk.Radiobutton (self, text = "Radio 1" , variable = self.var,value=1,command=self.voir)
            self.rb1=Tk.Radiobutton (self, text = "Radio 2" , variable = self.var,value=2,command=self.voir)
            self.rb0.pack()
            self.rb1.pack()
     
        def voir(self):
            self.eti.configure(text=self.var.get())
     
    if __name__ == '__main__':
        f=feuille()
        f.mainloop()
    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
    #module lance.py
    import tkinter as Tk 
    from radiobase import *
     
    class root(Tk.Tk):
        """Classe pour la feuille"""
        def __init__(self):
            Tk.Tk.__init__(self)
            bt=Tk.Button(self,text='Lancer fenetre radion',width=30,height=5,command=self.lancer)
            bt.pack()
     
        def lancer(self):
            print("id de l'objet root : %d" % id(self))
            b=feuille()
     
    if __name__ == '__main__':
        a=root()
        a.mainloop()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    id de l'objet root : 3073383084
    id de l'objet feuille : 3072945740
    id du _master de self.var : 3073383084
    @+

  5. #5
    Membre confirmé
    Homme Profil pro
    débutant
    Inscrit en
    Février 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : débutant
    Secteur : Alimentation

    Informations forums :
    Inscription : Février 2012
    Messages : 88
    Par défaut
    désolé de répondre tardivement, merci pour les explications.

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

Discussions similaires

  1. probléme avec radiobutton
    Par Mohamedbenlakhrech dans le forum Débuter
    Réponses: 2
    Dernier message: 09/04/2012, 10h47
  2. Problème avec RadioButton
    Par souf_87 dans le forum Spring
    Réponses: 3
    Dernier message: 29/07/2011, 19h58
  3. problème avec radiobutton
    Par sky88 dans le forum VB.NET
    Réponses: 1
    Dernier message: 03/07/2009, 08h52
  4. Problème avec RadioButton dans une DataList
    Par luimême dans le forum ASP.NET
    Réponses: 1
    Dernier message: 13/11/2007, 10h54
  5. petit problème avec RadioButtons et event :-(
    Par Thundereagle dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 29/09/2007, 12h39

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