Bonne syntaxe class python tkinter

Résolu
Keyve Messages postés 3 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 4 avril 2012 - 4 avril 2012 à 13:33
Keyve Messages postés 3 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 4 avril 2012 - 4 avril 2012 à 16:04
Bonjour,

je voudrais savoir si le syntaxe de cette librairie python et correct ou non :
from Tkinter import *

class win(object):

    def __init__(self,name):
        self.mainWin = Tk()
        self.mainWin.title(name)

class winStd(win):
    
    def __init__(self,name):
        win.__init__(self,name)
        self.btExit Button(None, text 'Exit', command = self.mainWin.destroy )
        self.btExit.pack( fill X, side TOP, expand = 1 )

class winLaunch(winStd):

    def __init__(self,name,cmd):
        winStd.__init__(self,name)
        self.btLaunch Button(None, text 'Launch', command = cmd )
        self.btLaunch.pack( fill X, side TOP, expand = 1 )


Merci beaucoup.

Bye Keyve

4 réponses

MichelFJM Messages postés 18 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 29 mai 2013
4 avril 2012 à 15:56
Oui, si une classe fille redéfinit la méthode __init__, celle de la classe mère n'est plus appelée automatiquement. Comme tu fais des choses spécifiques dans tes __init__, il n'y a rien d'anormal.
Comme je ne pratique pas trop les fenêtres et widgets, je ne peux pas dire si ces classes te seront utiles à l'avenir.

Fred
3
MichelFJM Messages postés 18 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 29 mai 2013
4 avril 2012 à 15:10
Bonjour

Je n'ai rien vu d'anormal. Avec :
def c() : print 'command launched'

a=winLaunch('toto',c)

et eventuellement :
a.mainWin.mainloop()

ça marche. Quelle est exactement la question ?

Fred
0
Keyve Messages postés 3 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 4 avril 2012
4 avril 2012 à 15:28
En fait je voudrais me définir une librairie Python Tkinter avec des forme prédéfinie car la plus part des application que je vais avoir à développer ont presques toutes la même forme.

Comme je découvre la programmation objet avec python, je ne suis pas très sùr de m'y prendre correctement ou en tout cas intélligement !!!

Ma question porte principalement sur la mécanique du fonctionnement de l'héritage en python !!!

est-ce que je suis obligé de refaire appel à une class pour en hérité ?

exemple:
class win(object):

def __init__(self,name):
self.mainWin = Tk()
self.mainWin.title(name)

class winStd(win):

def __init__(self,name):
win.__init__(self,name)
self.btExit Button(None, text 'Exit', command = self.mainWin.destroy )
self.btExit.pack( fill X, side TOP, expand = 1 )

class winLaunch(winStd):

def __init__(self,name,cmd):
winStd.__init__(self,name)
self.btLaunch Button(None, text 'Launch', command = cmd )
self.btLaunch.pack( fill X, side TOP, expand = 1 )


j'ai mis en rouge la class, son héritage dans la class winStd et son rappel dans le def __init__.


Désolé si je suis brouillon mais je commence se boulôt et les forums de manière général ne sont pas ma tasse de thé !!

Merci

Bye Keyve
0
Keyve Messages postés 3 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 4 avril 2012
4 avril 2012 à 16:04
Merci pour ta réponse.

Bonne journée.


Bye Keyve
0
Rejoignez-nous