柚子快報激活碼778899分享:C++Qt學(xué)習(xí)——Qt信號槽
柚子快報激活碼778899分享:C++Qt學(xué)習(xí)——Qt信號槽
信號和槽是Qt編程的基礎(chǔ),他們的存在使得在Qt中處理界面各個組件的交互操作變得更加直觀簡單。信號(SUGNAL):也就是發(fā)送者發(fā)送的函數(shù)信號,例如PushButtun最常見的信號就是鼠標(biāo)單擊的時候發(fā)射的click()信號槽(SLOT):也就是說接收者對信號響應(yīng)的函數(shù),槽也是一個函數(shù)。 用一個生活中的例子就是:?
?
目錄
?
1、使用Qt的信號槽
1.1、新建一個UI文件
?1.2、雙擊進(jìn)入mainwindow.ui
?1.3、在ui界面拖入一個PushButtun
1.4、雙擊修改按鈕名稱,并修改字體大小
1.5、設(shè)置按鍵位置和大小
1.6、將按鈕當(dāng)作發(fā)送者(對象),mainwindow當(dāng)作接收者
?1.7、點擊Signal_Slots Edit
?1.8、設(shè)置事件
方法一:先點擊綠色的加號,再雙擊發(fā)送者,選擇pushbuttun,一次選擇信號為click()等。
?方法二:點擊左上角的信號槽連接
?A、按住按鈕拖出來,彈出窗口,最后點擊ok。會發(fā)現(xiàn)會出現(xiàn)和方法一一樣的效果
方法三:用代碼寫
A、選中按鈕,右鍵轉(zhuǎn)到槽
B、點擊click,點擊ok。跳轉(zhuǎn)到MainWindow函數(shù),寫下案件觸發(fā)的事件,打印必須引用
C、按鍵F4,跳轉(zhuǎn)到聲明,這是Qtcreator創(chuàng)建好的
D、按住ctrl+R,運行即可
2、Qt信號槽介紹
2.1、在mainwindow.cpp里面寫
2.2、按住ctrl+R,運行即可
3、自定義信號槽
3.1、按住Ctrl+N,創(chuàng)建Student和School類
3.2、點擊student.h發(fā)現(xiàn)已經(jīng)將信號創(chuàng)建好了,因為我們設(shè)置的學(xué)校是發(fā)送者,所以直接在signals下直接聲明函數(shù)
3.3、在student.h里面自定義槽
3.4、在mainwindow.h里面引入頭文件以及class類
3.5、創(chuàng)建school和student的對象
3.6、在mainwindow.cpp里面實例化
3.7、連接信號槽
3.7.1、一個信號可以鏈接多個槽
3.7.2、多個信號可以鏈接同一個槽
3.7.3、 一個信號可以鏈接另外一個信號
1、使用Qt的信號槽
1.1、新建一個UI文件
?1.2、雙擊進(jìn)入mainwindow.ui
?1.3、在ui界面拖入一個PushButtun
1.4、雙擊修改按鈕名稱,并修改字體大小
1.5、設(shè)置按鍵位置和大小
1.6、將按鈕當(dāng)作發(fā)送者(對象),mainwindow當(dāng)作接收者
?1.7、點擊Signal_Slots Edit
?1.8、設(shè)置事件
方法一:先點擊綠色的加號,再雙擊發(fā)送者,選擇pushbuttun,一次選擇信號為click()等。
那么這個就是點擊按鈕主窗口關(guān)閉
?方法二:點擊左上角的信號槽連接
?A、按住按鈕拖出來,彈出窗口,最后點擊ok。會發(fā)現(xiàn)會出現(xiàn)和方法一一樣的效果
?
方法三:用代碼寫
A、選中按鈕,右鍵轉(zhuǎn)到槽
B、點擊click,點擊ok。跳轉(zhuǎn)到MainWindow函數(shù),寫下案件觸發(fā)的事件,打印必須引用
#include
C、按鍵F4,跳轉(zhuǎn)到聲明,這是Qtcreator創(chuàng)建好的
D、按住ctrl+R,運行即可
2、Qt信號槽介紹
信號與槽關(guān)聯(lián)是用QObject::connect()函數(shù)來實現(xiàn)的,基本格式是:
QObject::connect(sender, SIGNAL(signal()), receiver, SLOT(slot()));
在應(yīng)用中,OBject是所有Qt類的基類,因此可以將上面的話換成
connect(sender, SIGNAL(signal()), receiver, SLOT(slot()));
2.1、在mainwindow.cpp里面寫
this就是MainWindow,主窗口
2.2、按住ctrl+R,運行即可
3、自定義信號槽
3.1、按住Ctrl+N,創(chuàng)建Student和School類
3.2、點擊student.h發(fā)現(xiàn)已經(jīng)將信號創(chuàng)建好了,因為我們設(shè)置的學(xué)校是發(fā)送者,所以直接在signals下直接聲明函數(shù)
3.3、在student.h里面自定義槽
定義函數(shù)
3.4、在mainwindow.h里面引入頭文件以及class類
3.5、創(chuàng)建school和student的對象
3.6、在mainwindow.cpp里面實例化
3.7、連接信號槽
3.7.1、一個信號可以鏈接多個槽
? ? connect(school, SIGNAL(sendMessages()), student, SLOT(comeBackToClass()));
? ? connect(school, SIGNAL(sendMessages()), this, SLOT(hide()));
運行不報錯
3.7.2、多個信號可以鏈接同一個槽
connect(school, SIGNAL(sendMessages2()), student, SLOT(comeBackToClass()));
connect(school, SIGNAL(sendMessages2()), student, SLOT(close()));
運行不報錯
3.7.3、 一個信號可以鏈接另外一個信號
emit:發(fā)送信號的關(guān)鍵字
connect(school, SIGNAL(sendMessages2()), student, SIGNAL(iconSizeChanged()));
emit school->sendMessages();
運行不報錯
柚子快報激活碼778899分享:C++Qt學(xué)習(xí)——Qt信號槽
好文閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。