pyqt5之信號+槽測試用例

????在使用pycharm進行編寫代碼的時候,發(fā)現(xiàn)信號設置了connect一個槽,但是測試發(fā)現(xiàn)沒有起作用,另外,在pycharm編輯器上connect提示沒有這個函數(shù),總是找不到原因,后面決定還是對碰到相應的知識點需要做對應的測試用例進行學習和驗證。

公司主營業(yè)務:做網(wǎng)站、網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出汕頭免費做網(wǎng)站回饋大家。

????下面這個是對信號+槽的一個典型實例。可以正常按預期運行,在pycharm中connect也顯示沒有這個函數(shù),應該就是pycharm本身設置和提示的問題,后面忽略它。所以有時候也不能鉆牛角尖,pycharm也僅僅是個編輯器而已。

#-*-?coding:utf-8?-*-
'''
Signal?&?Slot
'''
__author__?=?'Tony?Zhu'

import?sys
from?PyQt5.QtCore?import?Qt
from?PyQt5.QtWidgets?import?(QWidget,?QLcdnumber,?QSlider,QGridLayout,QLabel,QHBoxLayout,?QGroupBox,
????QVBoxLayout,?QApplication,QProgressBar,QPushButton,QMessageBox)


class?SignalSlot(QWidget):

????def?__init__(self):
????????super(SignalSlot,self).__init__()
????????self.initUI()


????def?initUI(self):

????????self.controlsGroup?=?QGroupBox("運行樣本")
????????self.lcdNumber?=?QLCDNumber(self)
????????self.slider?=?QSlider(Qt.Horizontal,?self)
????????self.pBar?=?QProgressBar(self)
????????vbox?=?QVBoxLayout()
????????vbox.addWidget(self.pBar)
????????vbox.addWidget(self.lcdNumber)
????????vbox.addWidget(self.slider)
????????self.controlsGroup.setLayout(vbox)

????????controlsLayout?=?QGridLayout()
????????self.label1?=?QLabel("保存狀態(tài):")
????????self.saveLabel?=?QLabel()
????????self.label2?=?QLabel("運行狀態(tài):")
????????self.runLabel?=?QLabel()
????????self.buttonSave?=?QPushButton("保存")
????????self.buttonRun?=?QPushButton("運行")
????????self.buttonStop?=?QPushButton("停止")
????????self.buttonDisconnect?=?QPushButton("解除關聯(lián)")
????????self.buttonConnect?=?QPushButton("綁定關聯(lián)")

????????controlsLayout.addWidget(self.label1,0,0)
????????controlsLayout.addWidget(self.saveLabel,0,1)
????????controlsLayout.addWidget(self.label2,1,0)
????????controlsLayout.addWidget(self.runLabel,1,1)
????????controlsLayout.addWidget(self.buttonSave,2,0)
????????controlsLayout.addWidget(self.buttonRun,2,1)
????????controlsLayout.addWidget(self.buttonStop,2,2)
????????controlsLayout.addWidget(self.buttonDisconnect,3,0)
????????controlsLayout.addWidget(self.buttonConnect,3,1)

????????layout?=?QHBoxLayout()
????????layout.addWidget(self.controlsGroup)
????????layout.addLayout(controlsLayout)
????????self.setLayout(layout)

????????self.buttonRun.clicked.connect(self.buttonSave.clicked)
????????self.slider.valueChanged.connect(self.pBar.setValue)
????????self.slider.valueChanged.connect(self.lcdNumber.display)
????????self.buttonSave.clicked.connect(self.showMessage)
????????self.buttonRun.clicked.connect(self.showMessage)
????????self.buttonDisconnect.clicked.connect(self.unbindConnection)
????????self.buttonConnect.clicked.connect(self.bindConnection)
????????self.buttonStop.clicked.connect(self.stop)

????????self.setGeometry(300,?500,?500,?180)
????????self.setWindowTitle('信號和槽')

????def?showMessage(self):
????????if?self.sender().text()?==?"保存":
????????????self.saveLabel.setText("Saved")
????????elif?self.sender().text()?==?"運行":
????????????self.saveLabel.setText("Saved")
????????????self.runLabel.setText("Running")

????def?unbindConnection(self):
????????self.slider.valueChanged.disconnect()
????def?bindConnection(self):
????????self.slider.valueChanged.connect(self.pBar.setValue)
????????self.slider.valueChanged.connect(self.lcdNumber.display)
????def?stop(self):
????????self.saveLabel.setText("")
????????self.runLabel.setText("")

if?__name__?==?'__main__':

????app?=?QApplication(sys.argv)
????ex?=?SignalSlot()
????ex.show()
????sys.exit(app.exec_())

文章名稱:pyqt5之信號+槽測試用例
標題鏈接:http://muchs.cn/article30/johjso.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、網(wǎng)站排名、手機網(wǎng)站建設、網(wǎng)站維護、域名注冊、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設