J'essaie de créer un contrôle personnalisé basé sur wx.richtext.RichTextCtrl
et je rencontre un problème. Chaque fois que je tente d'ajouter le contrôle personnalisé à un calibreur, wxPython étrangle avec l'erreurwxPython GridSizer.Add() ne fonctionne pas pour le contrôle personnalisé
Traceback (most recent call last):
File "pyebook.py", line 46, in <module>
frame = MainFrame(None, 'pyebook')
File "pyebook.py", line 14, in __init__
self.mainPanel.GetSizer().Add(ReaderControl(self.mainPanel), 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND)
File "/usr/local/lib/wxPython-unicode-2.8.11.0/lib/python2.6/site-packages/wx-2.8-mac-unicode/wx/_core.py", line 12685, in Add
return _core_.Sizer_Add(*args, **kwargs)
TypeError: wx.Window, wx.Sizer, wx.Size, or (w,h) expected for item
Le contrôle personnalisé est à ce moment extrêmement simple et ressemble à ce
class ReaderControl(wx.richtext.RichTextCtrl):
def __init__(self, parent, id=-1, value=''):
wx.richtext.RichTextCtrl(parent, id, value, style=wx.richtext.RE_READONLY, name='ReaderControl')
Le code J'utilise pour ajouter le contrôle au calibreur est:
self.mainPanel.GetSizer().Add(ReaderControl(self.mainPanel), 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND)
Des idées de ce que je fais mal ici?
Bah! Je pensais que j'avais appelé «__init__» explicitement. Il est surprenant de voir à quelle fréquence vos yeux ignorent les erreurs que vous devriez savoir mieux que de faire. –
Oui, parfois vous êtes tellement occupé à chercher quelque chose de compliqué, une chose simple va glisser à côté. Ça m'arrive au moins une fois par mois;) – JimG