c/c++语言开发共享关于pyqtSignal的基本使用

pyqtsignal的基本使用下面包含了对pyqtsignal的基础使用,包括多参数因为较为简单,就当作参考书吧~~然后信号可以接收多个信号源哦~下面也有举例 (mousepressevent 和 b

pyqtsignal的基本使用

下面包含了对pyqtsignal的基础使用,包括多参数

因为较为简单,就当作参考书吧~~

然后信号可以接收多个信号源哦~下面也有举例 (mousepressevent 和 buttonclicked2)

import sys  from pyqt5.qtwidgets import qwidget, qpushbutton, qapplication, qmainwindow, qhboxlayout  from pyqt5.qtcore import qt, pyqtsignal    class cmainwindow(qmainwindow):      signaltest = pyqtsignal()      signaltest1 = pyqtsignal(str)      signaltest2 = pyqtsignal(float, float)        def __init__(self):          super().__init__()          # 确认pushbutton设置          btn = qpushbutton("无参信号")          btn.clicked.connect(self.buttonclicked)          btn1 = qpushbutton("单参信号")          btn1.clicked.connect(self.buttonclicked1)          btn2 = qpushbutton('双参信号')          btn2.clicked.connect(self.buttonclicked2)          hbox = qhboxlayout()          hbox.addstretch(1)          hbox.addwidget(btn)          hbox.addwidget(btn1)          hbox.addwidget(btn2)          widget = qwidget()          self.setcentralwidget(widget)          widget.setlayout(hbox)          self.signaltest.connect(self.signalnone)          self.signaltest1.connect(self.signalone)          self.signaltest2.connect(self.signaltwo)          self.setwindowtitle('pysignal的使用')          self.show()        def signalnone(self):          print("无参信号,传来的信息")        def signalone(self, arg1):          print("单参信号,传来的信息:", arg1)        def signaltwo(self, arg1, arg2):          print("双参信号,传来的信息:", arg1, arg2)        def mousepressevent(self, event):          self.signaltest2.emit(event.pos().x(), event.pos().y())        def buttonclicked(self):          self.signaltest.emit()        def buttonclicked1(self):          self.signaltest1.emit("我是单参信号传来的")        def buttonclicked2(self):          self.signaltest2.emit(0, 0)        def keypressevent(self, e):          if e.key() == qt.key_escape:              self.close()    if __name__ == '__main__':      app = qapplication(sys.argv)      mainwindow = cmainwindow()      sys.exit(app.exec_())

关于pyqtsignal()作用

from pyqt5.qtcore import qobject , pyqtsignal     class custsignal(qobject):         #声明无参数的信号      signal1 = pyqtsignal()         #声明带一个int类型参数的信号      signal2 = pyqtsignal(int)         #声明带int和str类型参数的信号      signal3 = pyqtsignal(int,str)         #声明带一个列表类型参数的信号      signal4 = pyqtsignal(list)         #声明带一个字典类型参数的信号      signal5 = pyqtsignal(dict)         #声明一个多重载版本的信号,包括带int和str类型参数的信号和带str类型参数的信号      signal6 = pyqtsignal([int,str], [str])         def __init__(self,parent=none):          super(custsignal,self).__init__(parent)             #将信号连接到指定槽函数          self.signal1.connect(self.signalcall1)          self.signal2.connect(self.signalcall2)          self.signal3.connect(self.signalcall3)          self.signal4.connect(self.signalcall4)          self.signal5.connect(self.signalcall5)          self.signal6[int,str].connect(self.signalcall6)          self.signal6[str].connect(self.signalcall6overload)             #发射信号          self.signal1.emit()          self.signal2.emit(1)          self.signal3.emit(1,"text")          self.signal4.emit([1,2,3,4])          self.signal5.emit({"name":"tao","age":"25"})          self.signal6[int,str].emit(1,"text")          self.signal6[str].emit("text")         def signalcall1(self):          print("signal1 emit")         def signalcall2(self,val):          print("signal2 emit,value:",val)         def signalcall3(self,val,text):          print("signal3 emit,value:",val,text)         def signalcall4(self,val):          print("signal4 emit,value:",val)         def signalcall5(self,val):          print("signal5 emit,value:",val)         def signalcall6(self,val,text):          print("signal6 emit,value:",val,text)         def signalcall6overload(self,val):          print("signal6 overload emit,value:",val)     if __name__ == '__main__':      custsignal = custsignal()  运行结果:

关于pyqtSignal的基本使用

以上为个人经验,希望能给大家一个参考,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

需要了解更多c/c++开发分享关于pyqtSignal的基本使用,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/1237750.html

(0)
上一篇 2022年9月10日
下一篇 2022年9月10日

精彩推荐