日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

信号和槽

發(fā)布時(shí)間:2023/11/30 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 信号和槽 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  信號(hào)槽是 Qt 框架引以為豪的機(jī)制之一。所謂信號(hào)槽,實(shí)際就是觀察者模式。當(dāng)某個(gè)事件發(fā)生之后,比如,按鈕檢測(cè)到自己被點(diǎn)擊了一下,它就會(huì)發(fā)出一個(gè)信號(hào)(signal)。這種發(fā)出是沒(méi)有目的的,類似廣播。如果有對(duì)象對(duì)這個(gè)信號(hào)感興趣,它就會(huì)使用連接(connect)函數(shù),意思是,將想要處理的信號(hào)和自己的一個(gè)函數(shù)(稱為槽(slot))綁定來(lái)處理這個(gè)信號(hào)。也就是說(shuō),當(dāng)信號(hào)發(fā)出時(shí),被連接的槽函數(shù)會(huì)自動(dòng)被回調(diào)

  connect(&b1, &QPushButton::pressed, this, &MainWidget::close);  參數(shù)一為信號(hào)發(fā)送者,二為信號(hào)。三為信號(hào)接收者,四為槽函數(shù)(接收到信號(hào)后執(zhí)行的函數(shù))

     此功能為:當(dāng)按下按鈕b1時(shí),關(guān)閉主窗口。

自定義槽函數(shù):

  槽函數(shù)和信號(hào)必須一致:沒(méi)有返回值。參數(shù)一致。

自定義信號(hào):

signals:void Mysignal();//這是一個(gè)信號(hào),只需定義,無(wú)需實(shí)現(xiàn)。 可以重載void Mysignal(int, QString);

?

主窗口向子窗口發(fā)送信號(hào):

connect(&b, &QPushButton::released, &SubWidget, &SubWidget::GetSlot);

子窗口向主窗口發(fā)送信號(hào):

  必須先定義信號(hào);再編寫一個(gè)信號(hào)發(fā)送函數(shù):

void SubWidget::SendSlot() {emit Mysignal();//發(fā)送信號(hào)emit Mysignal(250, "I am a little boy"); }

  再如下發(fā)送:

connect(&b, &QPushButton::released, this, &SubWidget::SendSlot);

  主窗口接收:

connect(&w, SIGNAL(Mysignal()), this, SLOT(delSub()));connect(&w, SIGNAL(Mysignal(int,QString)), this, SLOT(delSig(int,QString)));//這是QT5的新功能,可實(shí)現(xiàn)對(duì)重載信號(hào)的接收。
//必須在其頭文件.h中如下定義槽函數(shù),并實(shí)現(xiàn) public slots: void delSub(); void delSig(int, QString);

?

轉(zhuǎn)載于:https://www.cnblogs.com/lr1402585172/p/10607689.html

總結(jié)

以上是生活随笔為你收集整理的信号和槽的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。