Hi friends!
I have create panel from XRC and embed into it XRC subclassed widgets (masked control).
class LocalDeliveryDialog:
def __init__(self, parent):
self.resource = xrc.XmlResource('xrc/localdeliverydlg.xrc')
self.dlg = self.resource.LoadDialog(parent, 'LocalDeliveryDlg')
self.maskedBill = xrc.XRCCTRL(self.dlg, 'maskedBill')
def ShowModal(self):
return self.dlg.ShowModal()
def GetBill(self):
return self.maskedBill.maskedCtrl.GetValue()
def SetBill(self, value):
self.maskedBill.maskedCtrl.SetValue(value)
class MaskedBill(wx.Panel):
def __init__(self):
p = wx.PrePanel()
# the Create step is done by XRC.
self.PostCreate(p)
self.Bind(wx.EVT_WINDOW_CREATE, self.OnCreate)
def OnCreate(self, event):
self.maskedCtrl = masked.TextCtrl(self, wx.ID_ANY, mask='#{15}',
formatcodes='Fr<',
size=(200,-1),
style=wx.ALIGN_RIGHT)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.maskedCtrl)
self.SetSizerAndFit(sizer)
self.GetParent().Layout()
self.GetParent().Fit()
In other place of my app I'd trying following code:
dlg = LocalDeliveryDialog(self.panel)
dlg.SetBill(bill)
retVal = dlg.ShowModal()
...
and catch an error:
Traceback (most recent call last):
File "/home/bashu/work/devel/wxExpress/gui/localdelivery.py", line 155, in OnCopy
dlg.SetBill(bill)
File "/home/bashu/work/devel/wxExpress/gui/localdeliverydlg.py", line 83, in SetBill
self.maskedBill.maskedCtrl.SetValue(value)
AttributeError: 'MaskedBill' object has no attribute 'maskedCtrl'
I'm confused, what I shell do next? How to resolve this problem?
Thanks!
···
--
Basil Shubin
Freelance Software Developer