日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

python GUI庫圖形界面開發(fā)之PyQt5信號與槽基礎(chǔ)使用方法與實(shí)例

瀏覽:25日期:2022-08-03 14:05:43
信號與槽有三種使用方法

第一種:內(nèi)置信號與槽的使用

第二種:自定義信號與槽的使用

第三種:裝飾器的信號與槽的使用

一: 內(nèi)置信號與槽的使用

內(nèi)置信號與槽的使用,是指在發(fā)射信號時(shí),使用窗口控件的函數(shù),而不是自定義的函數(shù),這種也是我們前面用的最多的,下面簡單的一個(gè)實(shí)例,大家就會(huì)明白

import sysfrom PyQt5.QtWidgets import QMessageBox,QPushButton,QApplication,QWidgetapp=QApplication(sys.argv)widget=QWidget()def showMsg(): QMessageBox.information(widget,’信息提示框’,’Ok 彈出測試信息’)btn=QPushButton(’測試點(diǎn)擊按鈕’,widget)btn.clicked.connect(showMsg)widget.show()sys.exit(app.exec_())

運(yùn)行腳本,顯示效果如下

python GUI庫圖形界面開發(fā)之PyQt5信號與槽基礎(chǔ)使用方法與實(shí)例python GUI庫圖形界面開發(fā)之PyQt5信號與槽基礎(chǔ)使用方法與實(shí)例

這個(gè)例子將一個(gè)按鈕對象的內(nèi)置clicked信號與自定義槽函數(shù)showMsg()連接,單擊按鈕,就會(huì)觸發(fā)這個(gè)槽函數(shù),彈出一個(gè)信息提示框

二:自定義信號與槽的使用

自定義信號與槽的使用,是指在發(fā)射信號時(shí),不使用窗口控件的函數(shù),而是使用自定義的函數(shù),(簡單的說就是使用oyqtsSignal類實(shí)例發(fā)射信號),之所以要使用自定義的信號與槽,是因?yàn)橥ㄟ^內(nèi)置函數(shù)發(fā)射信號有自身的缺陷,首先,內(nèi)置函數(shù)只包含一些常用地信號,有些信號發(fā)射找不到對應(yīng)的內(nèi)置函數(shù),其次在特定的情況下,才能發(fā)射此信號,如按鈕的點(diǎn)擊事件,最后,內(nèi)置函數(shù)傳遞的參數(shù)是特定的,不可以自定義,使用自定義的信號與槽函數(shù)則沒有這些缺陷

在pyqt5中,自定義信號與槽的適用很靈活,比如因?yàn)闃I(yè)務(wù)需要,在程序中的某些地方需要發(fā)射一個(gè)信號,傳遞多種數(shù)據(jù),然后在槽函數(shù)接受這些數(shù)據(jù),這樣就可以很靈活的實(shí)現(xiàn)一些業(yè)務(wù)邏輯

簡單的一個(gè)實(shí)例:簡單的自定義信號與槽

from PyQt5.QtCore import QObject,pyqtSignal#信號對象class QTypeSignal(QObject): #定義一個(gè)信號 # sendmsg = pyqtSignal(object) #todo 優(yōu)化 多個(gè)參數(shù)傳遞 sendmsg=pyqtSignal(str,str) def __init__(self): super(QTypeSignal, self).__init__() def run( self ): #發(fā)射信號 #self.sendmsg.emit(’hell’) #todo 優(yōu)化 發(fā)射多個(gè)參數(shù) self.sendmsg.emit(’第一參數(shù)’,’第二個(gè)參數(shù)’)#槽對象class QTypeSlot(QObject): def __init__(self): super(QTypeSlot, self).__init__() #槽對象中的槽函數(shù) # def get( self,msg ): # print('QSlot get msg => ' + msg) #todo 優(yōu)化 多個(gè)參數(shù) def get( self,msg1,msg2 ): print('QSlot get msg => ' + msg1+’ ’+msg2)if __name__ == ’__main__’: #實(shí)例化信號對象 send=QTypeSignal() #實(shí)例化槽對象 slot=QTypeSlot() #1 print(’_____-把信號綁定到槽函數(shù)上_____’) send.sendmsg.connect(slot.get) send.run() print(’_____-把信號與槽函數(shù)解綁_____’) send.sendmsg.disconnect(slot.get) send.run()

python GUI庫圖形界面開發(fā)之PyQt5信號與槽基礎(chǔ)使用方法與實(shí)例

信號與槽連接的主要步驟如下

第一步:生成一個(gè)信號

#定義一個(gè)信號

# sendmsg = pyqtSignal(object)

#todo 優(yōu)化 多個(gè)參數(shù)傳遞

sendmsg=pyqtSignal(str,str)

第二步:將信號與槽函數(shù)連接起來

print(’_____-把信號綁定到槽函數(shù)上_____’)

send.sendmsg.connect(slot.get)

第三步:槽函數(shù)接受數(shù)據(jù)

def get( self,msg1,msg2 ):

print('QSlot get msg => ' + msg1+’ ’+msg2)

第四步:發(fā)射信號的實(shí)現(xiàn)

self.sendmsg.emit(’第一參數(shù)’,’第二個(gè)參數(shù)’)

第五步:將信號綁定到槽對象中的槽函數(shù)上,所以槽函數(shù)能收到所發(fā)射的信號,自此,數(shù)據(jù)傳遞成功,就是這么簡單,如果需要傳遞多個(gè)數(shù)據(jù),可以自定義參數(shù)類型與數(shù)目

send=QTypeSignal()

slot=QTypeSlot()

#

print(’_____-把信號綁定到槽函數(shù)上_____’)

send.sendmsg.connect(slot.get)

三:使用裝飾器信號與槽

1、使用格式

@PyQt5.QtCore.pyqtSlot(參數(shù))def on_發(fā)送者對象名稱_發(fā)射信號名稱(self,參數(shù)): pass

2、注意點(diǎn),使用裝飾器必須定義兩個(gè)東西

QMetaObject.connectSlotsByName(self)

給需要綁定事件的定義一個(gè)id(self.btn.setObjectName(’名稱’))

3、按鈕的普通事件

...class Window(QWidget): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.setWindowTitle(’裝飾器信號與槽’) self.resize(500, 500) self.move(400, 200) self.btn = QPushButton(’按鈕’, self) self.init_ui() def init_ui(self): self.btn.clicked.connect(self.btn_hand) @staticmethod def btn_hand(): print(’使用connect點(diǎn)擊了按鈕’)...

4、使用裝飾器后的事件

...class Window(QWidget): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.setWindowTitle(’裝飾器信號與槽’) self.resize(500, 500) self.move(400, 200) self.btn = QPushButton(’按鈕’, self) self.init_ui() # 要在加載組件后使用 QMetaObject.connectSlotsByName(self) def init_ui(self): # 這個(gè)地方定義的名字直接在下面使用 self.btn.setObjectName(’btn’) @pyqtSlot() def on_btn_clicked(self): print(’使用裝飾器點(diǎn)擊了按鈕’)

本文主要講解了PyQt5信號與槽基礎(chǔ)使用方法與實(shí)例,更多關(guān)于PyQt5信號與槽的知識請查看下面的相關(guān)鏈接

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产在线日韩| 国产成年精品| 国产一区二区精品福利地址| 午夜一级久久| 一区二区精品伦理...| 欧美日韩网址| 国产精品一区免费在线| 欧美成人精品三级网站| 精品中文字幕一区二区三区 | 亚洲激情二区| 亚洲一级大片| 中文一区一区三区免费在线观 | 久久99免费视频| 涩涩涩久久久成人精品| 国产亚洲在线观看| 老鸭窝亚洲一区二区三区| 免费中文字幕日韩欧美| 怡红院精品视频在线观看极品| 国产综合色产| 亚洲免费精品| 日本va欧美va精品发布| 久久免费精品| 成午夜精品一区二区三区软件| 国产麻豆一区二区三区精品视频| 欧美激情在线精品一区二区三区| 免费日韩成人| 欧美一级网址| 国产精品啊v在线| 精品国产亚洲一区二区在线观看| 成人精品久久| 国产免费av国片精品草莓男男| 蜜臀久久精品| 天堂俺去俺来也www久久婷婷| 久久精品青草| 国产精品网在线观看| 欧美成人亚洲| 久久亚州av| 一本一道久久a久久精品蜜桃| 亚洲欧美高清| 精品国产欧美日韩| 午夜在线播放视频欧美| 国产精品综合| 国产精品视频首页| 国产一区亚洲| 国产成人1区| 欧美日韩色图| 97国产精品| 精品亚洲免a| 亚洲综合五月| 婷婷精品视频| 美女视频网站久久| 亚洲精品欧美| 激情综合自拍| 国产精品不卡| 亚洲2区在线| 亚洲少妇在线| 亚洲黄色网址| 国产精一区二区| 亚洲特色特黄| 精品久久福利| 美女视频免费精品| 久久精品国产亚洲aⅴ| 亚洲一区二区三区免费在线观看 | 成人在线观看免费视频| 国产伦乱精品| 日韩亚洲精品在线观看| 视频一区视频二区在线观看| 自拍日韩欧美| 首页国产欧美日韩丝袜| 日韩午夜精品| 日韩1区2区日韩1区2区| 亚洲精品影院在线观看| 中文字幕一区二区精品区| 免费国产自久久久久三四区久久| 国产日产精品_国产精品毛片 | 美女在线视频一区| 国产欧美88| 欧美日韩99| 日本亚洲最大的色成网站www | 亚洲福利免费| 欧美网站在线| 丝袜美腿亚洲色图| 亚洲婷婷丁香| 日本不卡一区二区| 日韩高清国产一区在线| 国产精品v日韩精品v欧美精品网站 | 成人精品国产亚洲| 四虎4545www国产精品| 欧美粗暴jizz性欧美20| 在线综合欧美| 国产欧美二区| 亚洲成av人片一区二区密柚| 欧美特黄一级大片| 婷婷综合国产| 美腿丝袜亚洲一区| 国产一区二区久久久久| 不卡视频在线| 日韩一区二区三区免费视频| 精品视频网站| 丝袜a∨在线一区二区三区不卡| 日韩一区二区三区免费视频| 91嫩草亚洲精品| 日韩专区一卡二卡| 国产精品免费99久久久| 黄色精品网站| 久久精品国产亚洲aⅴ| 久久一二三区| 精品美女在线视频| 午夜宅男久久久| 国产三级一区| 天堂va在线高清一区| 午夜在线视频观看日韩17c| 麻豆mv在线观看| 日韩av网站在线观看| 欧美理论视频| 久久99蜜桃| 麻豆久久精品| 日韩一区二区在线免费| 国产探花一区在线观看| 亚洲影视一区| 亚洲福利免费| 日韩免费一区| 久久亚洲黄色| 久久精品99国产国产精| 成人日韩在线观看| 欧美欧美黄在线二区| 日韩精品视频一区二区三区| 国产亚洲毛片在线| 国产欧美日韩精品高清二区综合区 | 日韩亚洲国产欧美| 91精品一区国产高清在线gif | 欧美欧美黄在线二区| 日韩欧美中文字幕电影| 亚洲激情婷婷| 精品网站999| 黄色日韩在线| 国产v综合v| 日本免费一区二区三区四区| 亚洲精品国产精品粉嫩| 久久久久欧美精品| 国产欧美日韩在线观看视频| 国产精品一区二区三区av| 亚洲a一区二区三区| 久久尤物视频| 精品国产免费人成网站| 精品一区二区三区中文字幕 | 91精品国产调教在线观看| 中文字幕一区二区精品区| 久久福利精品| 欧美日本不卡| 丁香婷婷久久| 国产在线不卡| 亚洲1区在线观看| 日韩精品午夜视频| 精品视频网站| 中文在线免费视频| 丝袜av一区| yellow在线观看网址| 女人av一区| 欧美日韩中出| 国产在线日韩| 久久男人av| 国内精品麻豆美女在线播放视频| 麻豆精品91| 国产欧美日韩影院| 国产一区91| 日本国产一区| 午夜天堂精品久久久久| 国产精品婷婷| 亚洲精品在线a| 欧美自拍一区| 日韩手机在线| 精品视频91| 亚洲一级淫片| 久久99久久人婷婷精品综合| 黄在线观看免费网站ktv| 国产精品亚洲综合在线观看| 亚洲三级av| 国产精品试看| 精品亚洲二区| 日韩中文字幕| 国产精选在线| 中国女人久久久| 国产一区二区视频在线看| 丝袜a∨在线一区二区三区不卡| 欧美亚洲tv| 老司机久久99久久精品播放免费| 另类欧美日韩国产在线| 尤物在线精品| 久久精品国产99| 久久久亚洲一区| 四虎国产精品免费久久| 久久精品播放| 亚洲一区日本| 亚洲欧美久久久| 99国产精品视频免费观看一公开| 国产精品视频一区二区三区四蜜臂 | 免费在线成人网| 国产精品午夜一区二区三区| 国产亚洲毛片在线|