關(guān)于pyqtSignal的基本使用
pyqtSignal的基本使用
下面包含了對(duì)pyqtSignal的基礎(chǔ)使用,包括多參數(shù)
因?yàn)檩^為簡單,就當(dāng)作參考書吧~~
然后信號(hào)可以接收多個(gè)信號(hào)源哦~下面也有舉例 (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__()
# 確認(rèn)PushButton設(shè)置
btn = QPushButton("無參信號(hào)")
btn.clicked.connect(self.buttonClicked)
btn1 = QPushButton("單參信號(hào)")
btn1.clicked.connect(self.buttonClicked1)
btn2 = QPushButton('雙參信號(hào)')
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("無參信號(hào),傳來的信息")
def signalOne(self, arg1):
print("單參信號(hào),傳來的信息:", arg1)
def signalTwo(self, arg1, arg2):
print("雙參信號(hào),傳來的信息:", 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("我是單參信號(hào)傳來的")
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_())關(guān)于pyqtSignal()作用
from PyQt5.QtCore import QObject , pyqtSignal
class CustSignal(QObject):
#聲明無參數(shù)的信號(hào)
signal1 = pyqtSignal()
#聲明帶一個(gè)int類型參數(shù)的信號(hào)
signal2 = pyqtSignal(int)
#聲明帶int和str類型參數(shù)的信號(hào)
signal3 = pyqtSignal(int,str)
#聲明帶一個(gè)列表類型參數(shù)的信號(hào)
signal4 = pyqtSignal(list)
#聲明帶一個(gè)字典類型參數(shù)的信號(hào)
signal5 = pyqtSignal(dict)
#聲明一個(gè)多重載版本的信號(hào),包括帶int和str類型參數(shù)的信號(hào)和帶str類型參數(shù)的信號(hào)
signal6 = pyqtSignal([int,str], [str])
def __init__(self,parent=None):
super(CustSignal,self).__init__(parent)
#將信號(hào)連接到指定槽函數(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ā)射信號(hào)
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()
運(yùn)行結(jié)果:
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python?Web開發(fā)通信協(xié)議WSGI?uWSGI?uwsgi使用對(duì)比全面介紹
這篇文章主要為大家介紹了Python?Web開發(fā)通信協(xié)議WSGI?uWSGI?uwsgi使用對(duì)比全面介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
pip 錯(cuò)誤unused-command-line-argument-hard-error-in-future解決辦法
這篇文章主要介紹了Python包管理器pip安裝軟件時(shí)出現(xiàn)unused-command-line-argument-hard-error-in-future錯(cuò)誤的解決辦法,需要的朋友可以參考下2014-06-06
Python語音合成的項(xiàng)目實(shí)戰(zhàn)(PyQt5+pyttsx3)
本文主要介紹了Python語音合成的項(xiàng)目實(shí)戰(zhàn)(PyQt5+pyttsx3),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
在Python中使用K-Means聚類和PCA主成分分析進(jìn)行圖像壓縮
這篇文章主要介紹了在Python中使用K-Means聚類和PCA主成分分析進(jìn)行圖像壓縮,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
python遞歸打印某個(gè)目錄的內(nèi)容(實(shí)例講解)
下面小編就為大家?guī)硪黄猵ython遞歸打印某個(gè)目錄的內(nèi)容(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08

