Найти - Пользователи
Полная версия: как вызвать функцию, переопределяющую событие, из другого класса? какие аргументы у нее будут?
Начало » Python для новичков » как вызвать функцию, переопределяющую событие, из другого класса? какие аргументы у нее будут?
1
boombox

функцию mousePresEvent(self,event) переопределили в одном классе. как вызвать ее в другом классе? какие аргументы указать?


JOHN_16
Но ведь этот метод принадлежит классу А, класс Б понятие не имеет про класс А и его методы, и не имеет на него никаких прав.
Как вариант, оформите данный метод как метод нового класса C, и используйте его при определение изначального класса, таким образом задействовав множественное наследие.
Т.е (python 2).
class C(object):
     def new_method_one(..)
class A(base_class, C): # base_class - это базовый класс от которого происходит наследие
     ....
class B(base_class, C):
     .....
doza_and
boombox
какие аргументы указать?
Ну если буквалнь воспринимать вопрос то наверное так:

class Ta:
   ....
   def on_mouse(self,evt):
        self.x=evt.x
....
a=Ta()
clas Tb:
   ....
   def some_fun(self):
        evt=Any_class()
        evt.x=3
        a.on_mouse(evt)

т.е. Первый аргумент объет типа Ta. Ну не знаю что это у вас там. Наверное активное окно.
второй - любой класс у которого достаточно свойств, чтобы удовлетворить вашу функцию on_mouse

Портить системные события считается плохим тоном. Лучше определить свой тип событий
Rodegast
def mousePresEvent(self, event):
     .....
class A(object):
     def mousePresEvent(self, event):
            return mousePresEvent(self, event)
class B(object):
     def mousePresEvent(self, event):
            return mousePresEvent(self, event)
boombox
спасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB