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 :

lier une check box a un objet [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 21
    Points : 17
    Points
    17
    Par défaut lier une check box a un objet
    Bonjour,
    Je bloque sur un problème : lié une checkbox a un widget (ici, un trait). j'aimerais que l'objet s'affiche uniquement lorsque la case est coché. j'ai ecrit ce bout de code, en tentant de maitriser les checkbox, mais je n'y suis pas parvenu, je sollicite donc votre aide.
    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
    from tkinter import *
    fen1 = Tk()
    fen2 = Tk()
     
    def aa():
        b = a.get()
        if b == 1:
            T.grid()
        else:
            T.grid_remove()
     
     
    can = Canvas(fen1,width=500,height=500,bg ="white")
    can.pack()
    T= can.create_line(100,100,400,400)
     
    a = IntVar()
    AA = Checkbutton(fen2, text="trait", variable = a, command = aa)
    AA.pack()
     
    fen1.mainloop()
    Merci de votre aide.
    Ti.du.du39

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 333
    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 333
    Points : 36 853
    Points
    36 853
    Par défaut
    Salut,

    Relisez votre 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
    from tkinter import *
    fen1 = Tk()
    fen2 = Tk()
     
    def aa():
        b = a.get()
        if b == 1:
            T.grid()
        else:
            T.grid_remove()
     
     
    can = Canvas(fen1,width=500,height=500,bg ="white")
    can.pack()
    T= can.create_line(100,100,400,400)
     
    a = IntVar()
    AA = Checkbutton(fen2, text="trait", variable = a, command = aa)
    AA.pack()
     
    fen1.mainloop()
    T a été assigné à ce que retourne can.create_line.
    Ce n'est pas un widget tkinter mais un entier: il n'a donc pas de méthode .grid et .grid_remove et vous devriez voir s'afficher un message d'erreur explicite lorsque vous exécutez ce code.

    Dans une des documentations tkinter listées ici, vous trouverez des explications sur le widget Canvas, les items qu'on peut y créer et comment les masquer/rendre visibles.

    Cela fait, votre code ne fonctionnera toujours pas. lignes 2 et 3 vous avez créé 2 fenêtres avec des instances de Tk(). Ce qui en plus de créer une fenêtre crée un espace de nommage Tk différent. ligne 17, comme vous n'avez pas précisé l'espace de nommage dans lequel créer l'IntVar, ce sera le premier (fen1) par défaut et ne sera pas visible par le Checkbutton.

    Pour corriger çà, soit vous passez fen2 en paramètre d'IntVar, soit vous vous appliquez à n'avoir qu'une fenêtre principale (celle créée par Tk()) et des fenêtres secondaires (créées par Toplevel()).

    - W

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

Discussions similaires

  1. Lier une liste box a un sous formulaire
    Par dricks dans le forum VBA Access
    Réponses: 7
    Dernier message: 16/11/2017, 14h15
  2. Agrandir une check box
    Par tchoimars dans le forum Windows Forms
    Réponses: 8
    Dernier message: 01/04/2008, 17h00
  3. Problème de valeur d'une check box
    Par guiguisb dans le forum VBA Access
    Réponses: 3
    Dernier message: 16/09/2007, 13h18
  4. récupération d'une check box
    Par marie4449 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 24/05/2006, 14h28

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