Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Вызов кода родителя из потомка [RSS Feed]

#1 Фев. 21, 2008 13:14:42

DeFoR
От:
Зарегистрирован: 2008-02-21
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Вызов кода родителя из потомка

На Python перехожу после FoxPro
В FoxPro Была команда dodefault() т.е. вначале по этой команде выполняется код родителя, а затем идет код потомка.
Вопрос:
Есть wxPython,
Есть поле ввода хочется чтобы вначале по нажатию на клавишу (по событию) отработал код по умолчанию родителя
т.е. остался функционал редактирования поля (родителя) а затем должен отработать мой код (потомка)
Как это сделать?



Отредактировано (Фев. 21, 2008 13:17:59)

Офлайн

#2 Фев. 21, 2008 18:05:27

Viper
От:
Зарегистрирован: 2006-11-08
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

Вызов кода родителя из потомка

В питоне надо явно вызывать родительский метод:

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



Офлайн

#3 Фев. 21, 2008 20:06:44

DeFoR
От:
Зарегистрирован: 2008-02-21
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Вызов кода родителя из потомка

Спасибо за ответ, но это несовсем то
проблемма немного в другом: неизвестен родительский метод
я незнаю какой код отрабатывает в wx.TextCtrl по вводу в него символов
т.е. есть событие нужно чтобы оно вначале вызвало метод родителя, а потом потомка.
В частном случае нужно: вводя информацию в wx.TextCtrl
после каждого изминения содержания (после каждого введенного символа или удаленного)
запускать запрос к базе с полученным фильтром
cur.execute('''select * from url where name ~ %s limit 100''' , (x1,))
т.е. хочется получить динамический поиск по базе

есть event.Skip(), только используя его вначале выполняется код потомка, а потом код родителя,
а хотелосьбы наоборот



Офлайн

#4 Фев. 21, 2008 22:29:16

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Вызов кода родителя из потомка


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



Офлайн

#5 Фев. 22, 2008 05:57:44

DeFoR
От:
Зарегистрирован: 2008-02-21
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Вызов кода родителя из потомка

Спасибо !
Все чудненько заработало



Офлайн

  • Начало
  • » GUI
  • » Вызов кода родителя из потомка[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version