валидатор wxPython не вызван для внука диалога - PullRequest
0 голосов
/ 14 июля 2010

У меня есть что-то вроде этого:

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, потому что текстовые элементы управления должны динамически изменяться.

Проблема в том, что Validate() метод Validator никогда не вызывается.

Я попытался передать флаг wx.WS_EX_VALIDATE_RECURSIVELY в wx.Dialog.__init__, а также попытался переопределить Validate() метод ADialog для вызова Validate() на APanel, а затем переопределить Validate() метод APanelвызывать валидаторы каждого текстового элемента управления, но это тоже не сработало.

os: Windows 7
версия Python: 2.5.4
wxPython версия: 2.8.10

1 Ответ

3 голосов
/ 19 июля 2010

wx.WS_EX_VALIDATE_RECURSIVELY - это расширенный стиль, поэтому вам нужно установить его с помощью SetExtraStyle, а не передавать его в базовый класс '__init __

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...