Accueil > Forum > > > > héritage de wxObject et polymorphisme ??
héritage de wxObject et polymorphisme ??
mardi 19 février 2008 à 20:06:08 |
héritage de wxObject et polymorphisme ??

RV2931
|
Bonjour, Je programme en wxPython et j'aurai voulu savoir comment dériver un objet wx pour faire un bouton personalisé par exemple, avec des informations supplémentaires, mais qu'ils soit quand même pris pour un bouton normal lorsque je lui applique des bindings car, lorsque l'on fait ça : class MonBouton(wx.button): def __init__(self): wx.bouton(args) self.mySupInfo="InfoSupplémentaire" et qu'en suite je fais un binding MyBut=MonBouton() MyBut.Bind(wx.EVT_BUTTON,MyFunc)
Il me dit quelque chose du genre wxWindow expected (MonBouton) received
Le polymorphisme n'existe pas en python ?? ou bien n'est-il pas implémenté pour les objets wxPython ?? Y a-t-il moyen de forcer l'interprêteur à le prendre en tant que wx.Button (cast en C)???
Sinon, comment puis-je récupérer les bindings originaux de mon objet wx.button pour pouvoir gérer les évênements comme normalement avc ma propre classe.
J'ai pensé éventuellement à faire ça :
class MonBouton(wx.button):
def __init__(self):
self.orig=wx.bouton(args)
self.mySupInfo="InfoSupplémentaire"
MyBut=MonBouton()
MyBut.orig.Bind(wx.EVT_BUTTON,MyFunc)
Cela fonctionne surement mais je ne trouve pas ça joli, super propre, un peu bidouille. Je viens du C++ et quand j'hérite d'une, j'hérite réellement d'une classe, et de tout ce qui va autour, comment puis-je faire ça en python ????
Merci
RV
L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"
|
|
mercredi 20 février 2008 à 10:31:50 |
Re : héritage de wxObject et polymorphisme ??

laurent1024
|
Bonjour. C'est surement car Bind n'est pas une méthode de wxButton (je ne connais pas beaucoup wxpython). Dans les exemples qu'il y a sur le net c'est la classe Frame qui utilise les binds : class MyFrame(wx.Frame): def __init__(self, *args, **kwds): # begin wxGlade: MyFrame.__init__ kwds["style"] = wx.DEFAULT_FRAME_STYLE wx.Frame.__init__(self, *args, **kwds) self.pnl = wx.Panel(self) self.label_1 = wx.StaticText(self.pnl, -1, " Fichier source") self.button_1 = wx.Button(self.pnl, -1, "Parcourir") self.text_ctrl_1 = wx.TextCtrl(self.pnl, -1, "") self.label_2 = wx.StaticText(self.pnl, -1, " Garder une ligne sur") self.label_5 = wx.StaticText(self.pnl, -1, "..................") self.text_ctrl_2 = wx.TextCtrl(self.pnl, -1, "") self.label_3 = wx.StaticText(self.pnl, -1, " Fichier destination") self.button_2 = wx.ToggleButton(self.pnl, -1, "Auto") self.text_ctrl_3 = wx.TextCtrl(self.pnl, -1, "") self.label_4 = wx.StaticText(self.pnl, -1, " Etat") self.button_3 = wx.Button(self.pnl, -1, "Go") self.label_6 = wx.StaticText(self.pnl, -1, " Cutline 1.0") self.__set_properties() self.__do_layout() self.Bind(wx.EVT_BUTTON, self.parcourir, self.button_1) self.Bind(wx.EVT_TOGGLEBUTTON, self.auto, self.button_2) self.Bind(wx.EVT_BUTTON, self.go, self.button_3) self.compteur=0 # end wxGlade
|
|
mercredi 20 février 2008 à 10:54:27 |
Re : héritage de wxObject et polymorphisme ??

aera group
|
Réponse acceptée !
Rien de bien compliqué :
import wx
class
Mon_Bouton(wx.Button): def __init__(self,panel,texte,info): wx.Button.__init__(self,panel,-1,texte) self.info = info
defaffiche_info(self): return self.info
class
Frame(wx.Frame): def__init__(self, parent, title): wx.Frame.__init__(self, parent, -1, title,size=((200, 150)))
panel = wx.Panel(self)
text=wx.StaticText(panel, -1, "Bonjour tout le monde") self.bouton = Mon_Bouton(panel, "Afficher les infos du bouton",\ "Des infos suplémentaire")
self.Bind(wx.EVT_BUTTON, self.info, self.bouton) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(text, 0, wx.ALL|wx.CENTER, 10) sizer.Add(self.bouton, 0, wx.ALL|wx.CENTER, 10)
panel.SetSizer(sizer) panel.Layout()
self.Centre()
definfo(self, evt): print self.bouton.affiche_info()
class
MyApp(wx.App): defOnInit(self): frame = Frame(None, "Test") self.SetTopWindow(frame)
frame.Show(True) return True app = MyApp(True) app.MainLoop()
Voila, il suffit de respecter la syntaxe des classes sous Python (rien à voir avec WxPython ton problème), quand tu dérive une classe, la première ligne de la fonction __init__ doit être Nom_Class_Dérivé.__init__(self,Arg) ! C'été juste ça ! ______ Aéra
|
|
Cette discussion est classée dans : bouton, button, self, wx, monbouton
Répondre à ce message
Sujets en rapport avec ce message
Comment lancer son application !!!!!!!!!! [ par steede ]
Voila, j'ai écrit (pompé) une malheureuse app (extraite d'un exemple "simple" de wx) et j'aimerais la faire fonctionner !!!!ci dessous la ligne de la
Récupérer la valeur choisie dans une liste déroulante [ par amaury74 ]
Bonjours à tous,Ma question peu paraitre bête mais je n'ai pas trouvé de réponse claire.Voila: j'ai programmé une interface graphique avec wx.Python.
Comment Afficher les donnes d'une BD dans WXGRID ??? [ par medmst ]
slt a tousmon probleme est .. comment afficher les donnees d'un bd dans WXGRID ???mon code-source est : pas d'erreur de compilation mé il n'affiche ri
Socket : charger ip depuis fichier [ par Shinji ]
Bonjour @ ttes et @ ts, voici mon pb: j'essaye de faire une petite app client/serveur et j'aimerais pouvoir enregister l'ip/port du serveur dans un
Class has no attribute !?!? [ par RV2931 ]
BonjourJ'ai récupéré un petit programme "Hello world" d'un tuto wxPython de développez.com que voici :# !/usr/bin/python# -*- coding: iso885915 -*-im
Aide pour acquisition d'une pression [ par sebfluo ]
Bonjour a tous.Je suis entrain de réaliser un petit programme avec une interface graphique(réalisée avec QT designer et PyQT) permettant d'acquérir un
Fenetre + menu + bouton pour un débutant [ par Yachas ]
Bonjour, Je débute entièrement dans Python et tente de créer une simple application avec « wxPython » Je suis désolé de vous déranger pour des choses
wxBoxSizer [ par Vonscott ]
Salut à tous,Ceci est mon tout premier POST sur le forum ( mais certainement pas le dernier )Jusque la, je travaillais sous PHP/MySQL et j'ai voulu dé
[QT4][python]probleme menu bouton [ par tsic ]
salut,Mon interface client a un menu et un boutton (au debut non actif) .à la connexion j'ai ajouter la ligne suivante:"self.ui.bouton_env.setEnabled(
Compilation avec py2exe ??? [ par chrisadmin ]
Bonjour à tous, j'espere que je poste au bon endroit ! Je souhaite compiler une application développée en python. voici le setup.py lancé avec py2ex
Livres en rapport
|
Derniers Blogs
[SHAREPOINT 2010] CRéER ET PACKAGER UNE APPLICATION SILVERLIGHT POUR SHAREPOINT 2010[SHAREPOINT 2010] CRéER ET PACKAGER UNE APPLICATION SILVERLIGHT POUR SHAREPOINT 2010 par neodante
L'intégration native de Silverlight dans SharePoint 2010 représente une avancée majeure dans la conception des applications sur la plateforme SharePoint. Et pour cause, Silverlight repousse les limites du Web de SharePoint en offrant une expérience plus r...
Cliquez pour lire la suite de l'article par neodante [MIX10] KEYNOTE PREMIèRE JOURNéE - WINDOWS PHONE 7 ET SILVERLIGHT 4[MIX10] KEYNOTE PREMIèRE JOURNéE - WINDOWS PHONE 7 ET SILVERLIGHT 4 par cyril
Comme l'année dernière, me revoici à Las Vegas pour Mix10. Ce matin a eu lieu le premier keynote animé par Scott Guthrie. Le keynote s'est déroulé en 2 parties : Silverlight 4.0 et Windows Phone 7 Silverlight 4.0 Le taux de pénétration de Silverli...
Cliquez pour lire la suite de l'article par cyril [MIX10] RELEASE CANDIDATE DE SILVERLIGHT 4 ET RIA SERVICES[MIX10] RELEASE CANDIDATE DE SILVERLIGHT 4 ET RIA SERVICES par Audrey
C'est enfin officiel, grâce au MIX 2010, les Release Candidate de Silverlight 4 et de RIA Services sont sorties ! Pour les télécharger, voici les liens : Silverlight 4 RC : http://silverlight.net/getstarted/silverlight-4/ RIA Services RC : http://www.micr...
Cliquez pour lire la suite de l'article par Audrey PREMIERES IMPRESSIONS SUR WINDOWS PHONE 7PREMIERES IMPRESSIONS SUR WINDOWS PHONE 7 par odewit
Il est toujours passionnant de decouvrir une nouvelle plate-forme. C'est bien entendu le cas pour Windows Phone 7. Mais au-dela de la passion technique, j'ai le sentiment qu'il s'agit d'un coup de maitre en termes d'ergonomie (tres fluide et epuree) e...
Cliquez pour lire la suite de l'article par odewit [WINDOWSPHONE7] LECTEUR DE FLUX RSS[WINDOWSPHONE7] LECTEUR DE FLUX RSS par Vko
Parce que j'aime pas tester à moitié, je me suis amusé à développer un petit lecteur de flux RSS avec un look qui vous rappellera surement quelque chose :) La RC de Visual Studio est plutôt molle mais fonctionne correctement. L'émulateur est pas...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|