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 :

Tk et la Poo


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11
    Par défaut Tk et la Poo
    J'ai extrait ces lignes vraiment basiques de mon problème:
    voici un code ultra simple, juste un Frame
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    # _*_ coding: utf8 _*_
    #!/usr/bin/env python
    from Tkinter import *
    fen = Tk()
    fr = Frame(fen, height= 600, width = 400,  bg = 'white' )
    fr.pack()
    fen.mainloop()
    Je veux faire la même chose dans une classe et je n'y arrive pas, impossible de passer des valeurs ?? Je suis à peu prés sur que mon problème vient d'une incompréhension de base de la poo.
    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
    # _*_ coding: utf8 _*_
    #!/usr/bin/env python
    # Auteur : Philippe Lotton
    # Date de création: 
    from Tkinter import *
     
    def ma_classe(frame):
     
        def __init__(self):
            fr = Frame.__init__(self, height= 600, width = 400,  bg = 'white' )
            #fr.configure(bg = 'white' )
            # fr = Frame(fen, height= 600, width = 400,  bg = 'white' )
    if  __name__ == '__main__':
        fen = Tk()
        a = ma_classe(fen)
        fen.mainloop()

  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
    essayes en remplaçant cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fr = Frame.__init__(self, height= 600, width = 400,  bg = 'white' )
    par celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.fr = Frame.__init__(self, height= 600, width = 400,  bg = 'white' )
    ou encore celle-ci (j'ai jamais compris l'utilité de Frame.__init__...):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.fr = Frame(self, height= 600, width = 400,  bg = 'white' )

  3. #3
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    pas mal d'erreur dans ton code:

    pour définir une classe, c'est le mot class et non def qu'il faut utiliser (bien mis 5 minutes à voir cette erreur)
    L'héritage c'est Frame et non frame
    et on utilise alors directement Frame.__init_(..) et non self.fr = Frame...
    =>

    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
    # _*_ coding: utf8 _*_
    #!/usr/bin/env python
    # Auteur : Philippe Lotton
    # Date de création: 
    from Tkinter import *
     
    class ma_classe(Frame):
        def __init__(self, parent):
            Frame.__init__(self, parent,  height= 600, width = 400,  bg = 'white' )
            #fr.configure(bg = 'white' )
            # fr = Frame(fen, height= 600, width = 400,  bg = 'white' )
     
     
    if  __name__ == '__main__':
        fen = Tk()
        a = ma_classe(fen)
        a.pack()
        fen.mainloop()
    exemple d'héritage: http://guigui.developpez.com/sources/TkHorloge/

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11
    Par défaut
    Merci pour ces réponses.
    Que de fautes d'inattention !
    pour N.tox:
    Le Frame.__init__ permet d'exécuter le code d'initialisation de Frame et donc de disposer de ses méthodes et attributs pour notre propre classe qui en hérite.

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

Discussions similaires

  1. [POO] C'est quoi une classe en claire...???
    Par Spack dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 26/01/2009, 15h53
  2. Réponses: 16
    Dernier message: 06/06/2007, 12h42
  3. Réponses: 13
    Dernier message: 28/08/2004, 18h43
  4. [langage] Pb POO perl
    Par loothoof dans le forum Langage
    Réponses: 4
    Dernier message: 26/05/2004, 12h08
  5. lier un cube à un objet (POO)
    Par Hypnos dans le forum OpenGL
    Réponses: 12
    Dernier message: 26/08/2003, 21h46

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