Форум сайта python.su
На Python перехожу после FoxPro
В FoxPro Была команда dodefault() т.е. вначале по этой команде выполняется код родителя, а затем идет код потомка.
Вопрос:
Есть wxPython,
Есть поле ввода хочется чтобы вначале по нажатию на клавишу (по событию) отработал код по умолчанию родителя
т.е. остался функционал редактирования поля (родителя) а затем должен отработать мой код (потомка)
Как это сделать?
Отредактировано (Фев. 21, 2008 13:17:59)
Офлайн
В питоне надо явно вызывать родительский метод:
class A(): def some_method(self): print 'parent method' class B(A): def some_method(self): A.some_method(self) print 'child method' b = B() b.some_method()
Офлайн
Спасибо за ответ, но это несовсем то
проблемма немного в другом: неизвестен родительский метод
я незнаю какой код отрабатывает в wx.TextCtrl по вводу в него символов
т.е. есть событие нужно чтобы оно вначале вызвало метод родителя, а потом потомка.
В частном случае нужно: вводя информацию в wx.TextCtrl
после каждого изминения содержания (после каждого введенного символа или удаленного)
запускать запрос к базе с полученным фильтром
cur.execute('''select * from url where name ~ %s limit 100''' , (x1,))
т.е. хочется получить динамический поиск по базе
есть event.Skip(), только используя его вначале выполняется код потомка, а потом код родителя,
а хотелосьбы наоборот
Офлайн
def CallAfter(callable, *args, **kw):
“”“
Call the specified function after the current and pending event
handlers have been completed. This is also good for making GUI
method calls from non-GUI threads. Any extra positional or
keyword args are passed on to the callable when it is called.
:see: `wx.CallLater`
”“”
def do_update(self, x1):
cur.execute('''select * from url where name ~ %s limit 100''' , (x1,))
…
def on_text(self, event):
….
wx.CallAfter(self.do_update, x1)
event.Skip()
Офлайн
Спасибо !
Все чудненько заработало
Офлайн