В Qt события отличаются от сигналов и слотов. События представлены QEvent
объектами, которые передаются методу event()
из QObject
s, где они обычно отправляются специализированным методам, таким как mousePressEvent
и mouseMoveEvent
. Поскольку они не являются сигналами, вы не можете подключить их к слотам.
Вместо этого просто заново реализуйте функции событий, чтобы выполнять пользовательские операции. Обязательно вызовите исходную реализацию с super
, если только вы не знаете, что делаете.
def mousePressEvent(self, event):
super(FenixGui, self).mousePressEvent(event)
print "test 1"
self.offset = event.pos()
def mouseMoveEvent(self, event):
super(FenixGui, self).mouseMoveEvent(event)
print "test 2"
x=event.globalX()
y=event.globalY()
x_w = self.offset.x()
y_w = self.offset.y()
self.move(x-x_w, y-y_w)
Как правило, Qt предупреждает вас при попытке подключения к несуществующим сигналам, записывая предупреждающее сообщение на консоль. Кроме того, вы можете предотвратить эту ситуацию, используя сигналы и слоты нового стиля вместо старого, больше C ++ - ish SIGNAL()
функция:
lineEdit = QtGui.QLineEdit()
lineEdit.valueChanged.connect(self.myHandlerMethod)