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 :

La méthode curselection() fonctionne pas


Sujet :

Tkinter Python

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2018
    Messages : 40
    Points : 40
    Points
    40
    Par défaut La méthode curselection() fonctionne pas
    Bonjour,

    J'étudie en ce moment le widget des listes déroulantes, et la fonction curselection() ne fonctionne pas, je vous donne l'explication du cour :

    Dans un premier temps on crée la fenêtre :

    On crée ensuite le widget et on l'insère dans la fenêtre :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    liste = Listbox(fenetre)
    liste.pack()
    J'insère des éléments à l'intérieur de la liste :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    liste.insert(END, "Pierre")
    liste.insert(END, "Feuille")
    liste.insert(END, "Ciseau")
    et ensuite le cour me dit ça :

    "Pour accéder à la sélection, utilisez la méthodecurselectionde la liste. Elle renvoie un tuple de chaînes de caractères, chacune étant la position de l'élément sélectionné.

    Par exemple, siliste.curselection()renvoie('2',), c'est le troisième élément de la liste qui est sélectionné (Ciseauen l'occurrence)."

    Le problème c'est que la méthode ne fonctionne pas une fois que j'ai choisi un élément dans la fenêtre, j'appelle la méthode et ça me met une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    liste.curselection()
    Traceback (most recent call last):
      File "(stdin)", line 1, in (module)
      File "C:\Users\admin\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__i
    nit__.py", line 2782, in curselection
        return self._getints(self.tk.call(self._w, 'curselection')) or ()
    _tkinter.TclError: invalid command name ".!listbox"
    La méthode ne fonctionne plus uniquement après que j'ai ouvert la fenêtre, mais avant que celle ci ne soit ouverte elle fonctionne très bien, d'où peut venir le problème sachant que j'ai suivi à la lettre le cour, merci d'avance pour vos réponses

  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 Akainu_2018 Voir le message
    La méthode ne fonctionne plus uniquement après que j'ai ouvert la fenêtre, mais avant que celle ci ne soit ouverte elle fonctionne très bien, d'où peut venir le problème sachant que j'ai suivi à la lettre le cour, merci d'avance pour vos réponses
    Commencez par poster un code qui permette de reproduire votre problème (et pas seulement des extraits de quelques lignes)...

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

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2018
    Messages : 40
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Commencez par poster un code qui permette de reproduire votre problème (et pas seulement des extraits de quelques lignes)...

    - W
    Je vais poster l'intégralité du code en une seule fois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    from tkinter import *
     
    fenetre = Tk()
     
    liste = Listbox(fenetre)
    liste.pack()
     
    liste.insert(END, "Pierre")
    liste.insert(END, "Feuille")
    liste.insert(END, "Ciseau")
     
    fenetre.mainloop()
     
    liste.curselection()
    C'est la dernière ligne qui pose problème et qui lève l'exception, je ne peux donc pas récupérer la sélection

  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,

    Citation Envoyé par Akainu_2018 Voir le message
    C'est la dernière ligne qui pose problème et qui lève l'exception, je ne peux donc pas récupérer la sélection
    Effectivement, la question est de savoir comment vous arrivez à cette dernière ligne (ou plutôt comment vous sortez de l'instruction précédente (fenetre.mainloop()):la seule solution que vous offrez est de détruire la fenêtre (la croix en haut à droite), ce qui détruit la Listbox et explique le message d'erreur.
    Si vous débutez, l'instruction liste.curselection() sera plus facile à utiliser dans un callback, comme vous le raconterait n'importe quel tuto.

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

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2018
    Messages : 40
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Effectivement, la question est de savoir comment vous arrivez à cette dernière ligne (ou plutôt comment vous sortez de l'instruction précédente (fenetre.mainloop()):la seule solution que vous offrez est de détruire la fenêtre (la croix en haut à droite), ce qui détruit la Listbox et explique le message d'erreur.
    Si vous débutez, l'instruction liste.curselection() sera plus facile à utiliser dans un callback, comme vous le raconterait n'importe quel tuto.

    - W
    Effectivement j'ai bien fermé la fenêtre avec la croix rouge pour ensuite taper le code, je comprends maintenant que c'était une erreur.

    Par contre non dans le tutoriel que je suis, pratiquement rien à ce sujet n'est expliqué correctement, d'où mon message de base.

  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 Akainu_2018 Voir le message
    Par contre non dans le tutoriel que je suis, pratiquement rien à ce sujet n'est expliqué correctement, d'où mon message de base.
    Un bon tuto. c'est important car vous allez devoir y revenir souvent.
    Je peux seulement vous suggérer de regarder le premier chapitre sur tkinter du Swinnen.

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

Discussions similaires

  1. Appel et test d'une méthode ne fonctionnent pas (type not found)
    Par Faluchard dans le forum Général Java
    Réponses: 2
    Dernier message: 30/05/2010, 16h05
  2. Réponses: 5
    Dernier message: 13/03/2008, 10h42
  3. méthode OfType() ne fonctionne pas
    Par maa dans le forum C#
    Réponses: 7
    Dernier message: 21/01/2008, 09h12
  4. Réponses: 7
    Dernier message: 08/07/2007, 19h51
  5. Réponses: 2
    Dernier message: 01/05/2007, 18h50

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