本文研究的主要是pyqt5自定義信號實例解析的相關內(nèi)容,具體介紹如下。
創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、黃州網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5高端網(wǎng)站建設、商城網(wǎng)站開發(fā)、集團公司官網(wǎng)建設、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為黃州等各大城市提供網(wǎng)站開發(fā)制作服務。PyQt5已經(jīng)自動定義了很多QT內(nèi)建的信號。但是在實際的使用中為了靈活使用信號與槽機制,我們可以根據(jù)需要自定義signal??梢允褂胮yqtSignal()方法定義新的信號,新的信號作為類的屬性。
pyqtSignal()方法原型(PyQt官網(wǎng)的定義):
PyQt5.QtCore.pyqtSignal(types[, name[, revision=0[, arguments=[]]]])
Create one or more overloaded unbound signals as a class attribute.Parameters:
types – the types that define the C++ signature of the signal. Each type may be a Python type object or a string that is the name of a C++ type. Alternatively each may be a sequence of type arguments. In this case each sequence defines the signature of a different signal overload. The first overload will be the default.name – the name of the signal. If it is omitted then the name of the class attribute is used. This may only be given as a keyword argument.
revision – the revision of the signal that is exported to QML. This may only be given as a keyword argument.
arguments – the sequence of the names of the signal's arguments that is exported to QML. This may only be given as a keyword argument.
Return type: an unbound signal
新的信號應該定義在QObject的子類中。新的信號必須作為定義類的一部分,不允許將信號作為類的屬性在類定義之后通過動態(tài)的方式進行添加。通過這種方式新的信號才能自動的添加到QMetaObject類中。這就意味這新定義的信號將會出現(xiàn)在Qt Designer,并且可以通過QMetaObject API實現(xiàn)內(nèi)省。
通過下面的例子,了解一下關于signal的定義:
from PyQt5.QtCore import QObject, pyqtSignal class NewSignal(QObject): # 定義了一個“closed”信號,該信號沒有參數(shù)據(jù) closed= pyqtSignal() # 定義了一個"range_changed"信號,該信號有兩個int類型的參數(shù) range_changed = pyqtSignal(int, int, name='rangeChanged')
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。