emit與connect怎么在PyQT5 中使用?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),桂東網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:桂東等地區(qū)。桂東做網(wǎng)站價(jià)格咨詢:18982081108對于PyQT4, PyQT5在一些使用上有著比較明顯的變化有很大的變化,讓人驚訝是在emit和connect上的一些變化比較有意思,相信也是QT為了更好的和Python相結(jié)合做的改進(jìn)。
先上一張圖:
出現(xiàn) AttributeError: 'TCPWindow' object has no attribute 'connect' 這個(gè)問題說明了PyQT5不在支持PyQT4的鏈接信號(hào)槽方式!
對于emit使用如下:
class Server(QTcpServer): updateServer= pyqtSignal(list)
self.emit(SIGNAL("updateServer(QString,int)"),msg,length)
上面這個(gè)需要改成
self.updateServer(str,int).emit(msg,length)
注意PyQt4還是有QString這個(gè)東西的,PyQt5我找了半天都沒有了,可以直接用 str 來替代,對于QString::number 都是直接可以使用 str() 來取代,可以說很方便,更加適應(yīng)Python的風(fēng)格。
對于connect使用如下(以pushButton為例):
self.connect(self.pb_build_tcp,SIGNAL("released()"),self.CreateServer)
改成:
self.pb_build_tcp.released.connect(self.CreateServer)
看完上述內(nèi)容,你們掌握emit與connect怎么在PyQT5 中使用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!