DeFoR
Фев. 21, 2008 13:14:42
На Python перехожу после FoxPro
В FoxPro Была команда dodefault() т.е. вначале по этой команде выполняется код родителя, а затем идет код потомка.
Вопрос:
Есть wxPython,
Есть поле ввода хочется чтобы вначале по нажатию на клавишу (по событию) отработал код по умолчанию родителя
т.е. остался функционал редактирования поля (родителя) а затем должен отработать мой код (потомка)
Как это сделать?
Viper
Фев. 21, 2008 18:05:27
В питоне надо явно вызывать родительский метод:
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()
DeFoR
Фев. 21, 2008 20:06:44
Спасибо за ответ, но это несовсем то
проблемма немного в другом: неизвестен родительский метод
я незнаю какой код отрабатывает в wx.TextCtrl по вводу в него символов
т.е. есть событие нужно чтобы оно вначале вызвало метод родителя, а потом потомка.
В частном случае нужно: вводя информацию в wx.TextCtrl
после каждого изминения содержания (после каждого введенного символа или удаленного)
запускать запрос к базе с полученным фильтром
cur.execute('''select * from url where name ~ %s limit 100''' , (x1,))
т.е. хочется получить динамический поиск по базе
есть event.Skip(), только используя его вначале выполняется код потомка, а потом код родителя,
а хотелосьбы наоборот
Андрей Светлов
Фев. 21, 2008 22:29:16
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()
DeFoR
Фев. 22, 2008 05:57:44
Спасибо !
Все чудненько заработало