从MouseReleaseEvent发出信号

时间:2016-01-11 21:44:57

标签: python python-2.7 pyqt pyqt4

我不确定我做错了什么,基本上我想在鼠标释放事件发生时发出信号(自定义)。

Class myWidget(QWidget):

  def mouseReleaseEvent(self,event):
    if event.button()==Qt.LeftButton:
        message="LEFT BUTTON HAS BEEN CLICKED"
        QtCore.QObject.emit(self,QtCore.SIGNAL('message(QString)') str(message))

当我这样做时没有任何反应我看不到发出的信号,我决定移动

    message="LEFT BUTTON HAS BEEN CLICKED"
    QtCore.QObject.emit(self,QtCore.SIGNAL('message(QString)') str(message))

进入PaintEvent,这样我就可以确定是否有任何东西被解雇了。令我惊讶的是,在paintevent中,我可以看到事件被触发(因为我能够使用该消息)。但是当我把它放入mouseReleaseEvent甚至是MousePressEvent时,没有任何反应?

我做错了什么。 注意我确实尝试过打印" hello world"直接进入mouseReleaseEvent,只是为了测试,我可以看到正在按预期执行的print语句。为什么我没有看到MouseReleaseEvent?

使用pyqt,python和windows。这很奇怪

1 个答案:

答案 0 :(得分:2)

不要使用旧式的信号语法,因为它很容易出错并且难以调试。改为使用new style syntax

oSqlCommand1.CommandText = "INSERT INTO User_Images([" + AcNo.Text + "]) VALUES ('https://xxxx.xxxx.core.windows.net/container-" + AcNo.Text + "/" + fileName + "');";