wxPython的验证没有呼吁对话
问题描述:
的孙子我有这样的事情:现在wxPython的验证没有呼吁对话
class ADialog(wx.Dialog):
def __init__(self, parent, *args, **kwargs):
...
self.editor = APanel(parent=self)
...
...
class APanel(wx.Panel):
def CreatePanel(self, *args, **kwargs):
...
self.textCtrls = []
for (key, val) in zip(foo, bar):
...
box = wx.TextCtrl(parent=self, value=val, validator=Validator())
....
,我需要有APanel独立的,因为文本控件必须动态地改变。
问题是,Validator
的方法Validate()
永远不会被调用。
我试图传递标志wx.WS_EX_VALIDATE_RECURSIVELY
到wx.Dialog.__init__
,并且还试图重写ADialog的Validate()
方法来调用Validate()
上APanel,然后覆盖APanel的Validate()
方法来调用每个文本控件的验证,但没也不行。
操作系统:Windows 7
Python版本:2.5.4
wxPython的版本:2.8.10
答
wx.WS_EX_VALIDATE_RECURSIVELY是一个扩展的样式,所以你需要用SetExtraStyle设置它,而不是将它传递给基类'__init__