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

Python Discussion :

appel à une classe dans un script


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Passionné d'informatique
    Inscrit en
    Mai 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Passionné d'informatique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2016
    Messages : 2
    Par défaut appel à une classe dans un script
    Bonjour,

    J'ai un premier script (contient une classe) qui fonctionne bien lorsque je l'appel directement mais qui dysfonctionne lorsque je l'appel d'un autre script :

    Le script (classe) qui fonctionne :


    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
     
    from tkinter import*
     
    class appel():
     
        def __init__(self):
            "un bonton pour choisir parmi 3 choix"
            self.root=Tk()
            self.var = StringVar()
            b = Button(self.root, text='State', command=self.state)
            b.pack()
            self.vocabulaire()
     
        def vocabulaire(self):
            "construction des 3 boutons"
     
            for item in ['1', '2', '3']:
                    rb = Radiobutton(self.root, text=item,
                                  value=item,
                                  variable=self.var)
                    rb.pack(side=LEFT)
            return self.var.get()
     
     
        def state(self):
     
           print(self.var.get())   
     
    if __name__== '__main__':
     
        a=appel()
    Mais lorsque je l'appel avec ce script en cliquant sur le bouton il dysfonctionne :
    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
    from tkinter import*
    from radioessailoop import*
     
     
    def vocabul():
        "eee"
     
        a=appel()
     
     
    if __name__== '__main__':
     
        menu=Tk()
        menu.title("Menu...")
     
        text1=Label(menu, text='Sélectionnez : ',width=30, font='Arial 15').grid(row=1,column=1)
     
        vocabulaire=Button(menu, text ='VOCABULAIRE', command=vocabul).grid(row=4,column=1)
    Quelqu'un peut m'aider à comprendre pourquoi ?

    Inutile de vous préciser que je débute et que j'ai écrit ces scripts pour assimiler les notions apprises jusqu'à présent.

    Merci.

  2. #2
    Membre éclairé Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Par défaut
    Bonsoir ,
    peut tu utiliser la balise code pour nous montrer ton code , ca sera plus lisible .


    Et qu'entends tu par "il dysfonctionne" ? quel est le message d'erreur ou le dysfonctionnement ?

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

    Dans votre classe remplacez "self.root=Tk()" par "self.root=Toplevel()".
    Ca devrait aller mieux.

    Pour le pourquoi, reprenez votre tuto et regardez les subtiles différences entre Tk(), Toplevel() et Frame().

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

  4. #4
    Candidat au Club
    Homme Profil pro
    Passionné d'informatique
    Inscrit en
    Mai 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Passionné d'informatique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2016
    Messages : 2
    Par défaut Merci wiztricks
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Dans votre classe remplacez "self.root=Tk()" par "self.root=Toplevel()".
    Ca devrait aller mieux.

    Pour le pourquoi, reprenez votre tuto et regardez les subtiles différences entre Tk(), Toplevel() et Frame().

    - W
    Merci encore à wiztricks pour avoir abrégé mes heures de recherches (souffrances !) à résoudre ce soucis !

Discussions similaires

  1. [Free Pascal] Appeler une fonction dans un script Lua
    Par Roland Chastain dans le forum Free Pascal
    Réponses: 4
    Dernier message: 08/02/2015, 11h55
  2. [AppleScript] Appeler une routine dans un script
    Par jefmonde dans le forum AppleScript
    Réponses: 5
    Dernier message: 16/09/2014, 11h48
  3. Appelé une class dans le programme main
    Par nistelsof dans le forum Langage
    Réponses: 28
    Dernier message: 06/06/2007, 09h12
  4. [JS] Appeler une fonction dans un script externe
    Par agent007se dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/03/2007, 12h30
  5. Appeler une classe dans un autre package
    Par Nasky dans le forum Langage
    Réponses: 6
    Dernier message: 21/02/2007, 16h06

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