關于pyqtSignal的基本使用
更新時間:2022年06月18日 10:26:45 作者:在逆境中蛻變
這篇文章主要介紹了關于pyqtSignal的基本使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
pyqtSignal的基本使用
下面包含了對pyqtSignal的基礎使用,包括多參數(shù)
因為較為簡單,就當作參考書吧~~
然后信號可以接收多個信號源哦~下面也有舉例 (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): #聲明無參數(shù)的信號 signal1 = pyqtSignal() #聲明帶一個int類型參數(shù)的信號 signal2 = pyqtSignal(int) #聲明帶int和str類型參數(shù)的信號 signal3 = pyqtSignal(int,str) #聲明帶一個列表類型參數(shù)的信號 signal4 = pyqtSignal(list) #聲明帶一個字典類型參數(shù)的信號 signal5 = pyqtSignal(dict) #聲明一個多重載版本的信號,包括帶int和str類型參數(shù)的信號和帶str類型參數(shù)的信號 signal6 = pyqtSignal([int,str], [str]) def __init__(self,parent=None): super(CustSignal,self).__init__(parent) #將信號連接到指定槽函數(shù) 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) #發(fā)射信號 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() 運行結果:
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python?Web開發(fā)通信協(xié)議WSGI?uWSGI?uwsgi使用對比全面介紹
這篇文章主要為大家介紹了Python?Web開發(fā)通信協(xié)議WSGI?uWSGI?uwsgi使用對比全面介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12pip 錯誤unused-command-line-argument-hard-error-in-future解決辦法
這篇文章主要介紹了Python包管理器pip安裝軟件時出現(xiàn)unused-command-line-argument-hard-error-in-future錯誤的解決辦法,需要的朋友可以參考下2014-06-06Python語音合成的項目實戰(zhàn)(PyQt5+pyttsx3)
本文主要介紹了Python語音合成的項目實戰(zhàn)(PyQt5+pyttsx3),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮
這篇文章主要介紹了在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04