没有为dialogu的孙子调用wxPython验证器

2024-04-20 13:15:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样的东西:

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())
            ....

现在,我需要一个单独的面板,因为文本控件必须动态更改。在

问题是,ValidatorValidate()方法永远不会被调用。在

我尝试过将标志wx.WS_EX_VALIDATE_RECURSIVELY传递给wx.Dialog.__init__,还尝试重写ADialog的Validate()方法来调用APanel上的Validate(),然后重写APanel的Validate()方法来调用每个文本控件的验证器,但这也没用。在

操作系统:Windows 7
python版本:2.5.4
wxPython版本:2.8.10


Tags: 方法selfinitdefargsvalvalidatevalidator
1条回答
网友
1楼 · 发布于 2024-04-20 13:15:17

在wx.WS_EX_递归验证是一个扩展样式,因此需要使用SetExtraStyle来设置它,而不是通过将它传递给基类''uqinit\u'

相关问题 更多 >