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 :

Radiobutton et variable


Sujet :

Tkinter Python

  1. #1
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Par défaut Radiobutton et variable
    Bonjour je n'arrive pas à récupérer la variable n que j'ai mise dans des radiobuttons.
    Voilà le 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
    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
    57
    58
    59
    60
     
    from Tkinter import *
     
    #Fonctions
     
    def distance(x, y, x1, y1) :
        d = ((x-x1)**2+(y-y1)**2)
        chaine2.configure(text='La distance est de ' + str(d) + '*10^6 m')
        return d
     
    def force(di) :
        global mp, mg
        G = 6.67*(10**-11)
        f = G*mp*mg/di
        return f
     
     
    #Procédure générale de déplacement
     
    def deplacement(event) :
        global x, y
        x[n] = event.x
        y[n] = event.y
        can1.coords(oval[n], x[n], y[n], x[n]+r[n], y[n]+r[n])
        di = distance(x[0], y[0], x[1], y[1])
        forc = force(di)
        chaine.configure(text='Force=' + str(forc) + ' Newtons')
     
    #Les variables suivantes seront globales
         #Coordonnées initiales
    x = [400., 10.]
    y = [300., 10.]
    oval = [0, 1]
        #Masses des planètes
    mp, mg = 10**15, 10**24
    r = [30, 10]
    n = 1
    #Création du widget principal
    fen1 = Tk()
    fen1.title('La gravitation newtonienne')
    #Création des widgets esclaves
        #Fenêtre
    can1 = Canvas(fen1, width =800, height =400, bg="light yellow")
    can1.bind("<Button-1>", deplacement)
    can1.pack()
        #Planètes
    oval1 = can1.create_oval(x[1], y[1], x[1]+10, y[1]+10, width=2, fill='red')
    oval0 = can1.create_oval(x[0], y[0], x[0]+30, y[0]+30, width=2, fill='blue')
        #Textes
     
    choix = Frame(fen1).pack()
    Radiobutton(choix, text='Planète', var=n, value = 0).pack()
    Radiobutton(choix, text='Satellite', var=n, value = 1).pack()
    chaine = Label(fen1)
    chaine.pack()
    chaine2 = Label(fen1)
    chaine2.pack()
     
    #Démarrage du réceptionnaire d'événements
    fen1.mainloop()
    Merci d'avance

  2. #2
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut
    Il faut lire les docs à dispositions

    http://www.developpez.net/forums/d15...s/#post4429143

  3. #3
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Par défaut
    Justement j'ai lu la doc et impossible de voir mon erreur...
    Merci

  4. #4
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut
    C'est parce qu'il faut utiliser un StringVar ou un IntVar (ou un FLoatVar ?) suivant ton cas, tu leur affecte ensuite ue valeur avec leur méthode set(value)

Discussions similaires

  1. Utiliser "Radiobutton.Checked" avec nom de variable
    Par Léa53 dans le forum Windows Forms
    Réponses: 19
    Dernier message: 28/04/2009, 14h21
  2. variables locales ou globales ???
    Par elvivo dans le forum C
    Réponses: 13
    Dernier message: 03/07/2002, 08h22
  3. Procédure avec un nombre variable d'arguments
    Par charly dans le forum Langage
    Réponses: 15
    Dernier message: 21/06/2002, 11h08
  4. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  5. les variables globales static
    Par gRRosminet dans le forum C
    Réponses: 8
    Dernier message: 27/04/2002, 08h34

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