打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
pyqt4中创建自定义signal的方法
class SSHThread(QThread):
    def __init__(self, hostname = '', renderList = [], tabLabelText = 'L0001', parent = None):
        """ constructor"""
        ...omit...
        #a new custom signal to set string to textEdit
        self.editSignal = pyqtSignal(QString, QString)
         ...omit...

    def run(self):
          """ emit the new signal"""
          ... omit ...
          self.emit(SIGNAL('editSignal(QString, QString)'), QString("param1"), QString("param2"))
          ... omit ...

...... omit ......
def executeBtn(self):
      """ connect the new signal and a slot function"""
      QObject.connect(self.sshThread, SIGNAL('editSignal(QString, QString)'), self.on_textEdit_update)
      ... omit ...

def on_textEdit_update(self, param1, param2):
       """ the slot function"""
       ... omit ...


================================================

20151223补充一个完整例子,来源:

http://stackoverflow.com/questions/3891465/how-to-connect-pyqtsignal-between-classes-in-pyqt

from PyQt4 import QtCoreclass Pot(QtCore.QObject):    temperatureRaisedSignal = QtCore.pyqtSignal()    def __init__(self, parent=None):        QtCore.QObject.__init__(self)        self.temperature = 1    def Boil(self):        self.temperatureRaisedSignal.emit()        self.temperature += 1class Thermometer():    def __init__(self, pot):        self.pot = pot        self.pot.temperatureRaisedSignal.connect(self.temperatureWarning)    def StartMeasure(self):        self.pot.Boil()    def temperatureWarning(self):        print("Too high temperature!")if __name__ == '__main__':    pot = Pot()    th = Thermometer(pot)    th.StartMeasure()



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
信号与槽函数的自动绑定(三)
PyQt5快速入门(二)PyQt5信号槽机制
PyQt4 教程(5)
PyQt信号与槽之信号与槽的高级用法(四)
PyQt4 信号和槽详解
PyQt4
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服