PyQt實(shí)現(xiàn)了一個(gè)Python模塊集。它有超過(guò)300類(lèi),將近6000個(gè)函數(shù)和方法。它是一個(gè)多平臺(tái)的工具包,可以運(yùn)行在所有主要操作系統(tǒng)上,包括UNIX,Windows和Mac。 PyQt采用雙許可證,開(kāi)發(fā)人員可以選擇GPL和商業(yè)許可。在此之前,GPL的版本只能用在Unix上,從PyQt的版本4開(kāi)始,GPL許可證可用于所有支持的平臺(tái)。
創(chuàng)新互聯(lián)自2013年起,先為防城等服務(wù)建站,防城等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為防城企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。信號(hào)與槽是QT中的核心機(jī)制,也是PyQt5中對(duì)象直接進(jìn)行通信的機(jī)制,當(dāng)一個(gè)信號(hào)釋放的時(shí)候,連接的槽函數(shù)會(huì)自動(dòng)執(zhí)行,比如點(diǎn)擊/釋放按鈕都可以觸發(fā)槽函數(shù)。
信號(hào)與槽特點(diǎn)如下:
(1) 一個(gè)信號(hào)可以連接多個(gè)槽函數(shù)
(2) 一個(gè)槽可以監(jiān)聽(tīng)多個(gè)信號(hào)
(3) 一個(gè)信號(hào)可以連接另一個(gè)信號(hào)
(4) 信號(hào)與槽連接可以在不同線程間進(jìn)行
PyQt5中信號(hào)與槽一共有兩種使用方法:內(nèi)置信號(hào)與槽、自定義信號(hào)與槽;信號(hào)與槽通過(guò)connect()連接,通過(guò)disconnect()函數(shù)解除綁定,本文我們學(xué)習(xí)使用PyQt內(nèi)置的信號(hào)與槽。
PyQt5中普通按鈕是一個(gè)QPushButton也是,用戶(hù)界面中最常用的窗口小部件,它的基類(lèi)是QAbstracButton類(lèi),具有如下通用用法:
QPushButton類(lèi),用法如下:
QLCDNumber控件用于顯示一個(gè)帶有類(lèi)似液晶顯示屏效果的數(shù)字,該控件使用到的主要函數(shù)如下:
打開(kāi)designer.exe,使用默認(rèn)的Main Window創(chuàng)建,直接點(diǎn)擊Create按鈕即可
設(shè)計(jì)UI圖如下,并保存為btn.ui
進(jìn)入ui_test.py目錄,輸入如下命令:pyuic5 -o ui_test.py test.ui
程序?qū)崿F(xiàn)的功能是當(dāng)點(diǎn)擊button的時(shí)候,LCD顯示屏內(nèi)容會(huì)持續(xù)+1
import sys
import PyQt5.QtWidgets as qw
import ui_btn
num = 0
if __name__ == "__main__":
app = qw.QApplication(sys.argv)
w = qw.QMainWindow()
ui = ui_btn.Ui_MainWindow()
ui.setupUi(w)
ui.lcdNumber.setDecMode() #設(shè)置顯示模式
# ui.lcdNumber.setStyleSheet("border:2pxsolidgreen;color:red;background:silver;")
ui.lcdNumber.setSegmentStyle(ui.lcdNumber.Flat)
def lcd_show():
global num
num = num + 1
ui.lcdNumber.display(num)
ui.pushButton.clicked.connect(lcd_show)
w.show()
sys.exit(app.exec_())
本節(jié)代碼和上節(jié)環(huán)境搭建篇章主要不同點(diǎn)在于對(duì)QpushButton和QLCDNumber的處理。
關(guān)于QPushButton,程序中使用了ui.pushButton.clicked.connect(lcd_show)關(guān)聯(lián)信號(hào)與槽函數(shù),此時(shí)信號(hào)為clicked(),對(duì)應(yīng)槽函數(shù)為lcd_show(),在槽函數(shù)中調(diào)用QLCDNumber的display(num)函數(shù)顯示數(shù)字
關(guān)于QLCDNumber,程序中首先調(diào)用setDecMode()函數(shù)設(shè)置顯示10進(jìn)制數(shù)據(jù),然后設(shè)置顯示方式為Flat,最后在pushButton對(duì)應(yīng)的槽函數(shù)中顯示數(shù)字。
進(jìn)入文件目錄,這里是進(jìn)入2-btn文件夾目錄,控制臺(tái)輸入python3 run.py,即可彈出上述用QT Designer設(shè)計(jì)出來(lái)的頁(yè)面。
打開(kāi)注釋內(nèi)容,修改LCD樣式
ui.lcdNumber.setStyleSheet("border:2pxsolidgreen;color:red;background:silver;")
結(jié)果如下:
本節(jié)完,實(shí)際操作過(guò)程中需要注意的地方有如下幾點(diǎn):
(1)python版本
注意,本系列PyQt教程,采用python3.6.6,建議和我保持一致。
(2)安裝PyQt5和PyQt5_tools
注意選擇國(guó)內(nèi)安裝源,速度比較
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。