一文帶你了解Qt中槽的使用
一、建立槽和按鈕之間的連接
connect(信號(hào)發(fā)送者,發(fā)送的信號(hào),信號(hào)接收者,信號(hào)接收者的槽函數(shù))
1、例子
connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(showinfo()));
解釋:
信號(hào)反發(fā)送者:pushButton(這是一個(gè)按鈕),發(fā)送信號(hào):clicked(點(diǎn)擊按鈕),信號(hào)接收者:this(本類),信號(hào)接收者的槽函數(shù):showinfo(點(diǎn)擊按鈕后響應(yīng)的函數(shù))
二、槽函數(shù)的定義
(1)槽函數(shù)
protected slots: void showinfo();
(2)自定義帶參數(shù)的槽函數(shù)
signals: void mysignal(); //自定義信號(hào)(不需要實(shí)現(xiàn)),發(fā)送信號(hào)emit mysignal()
槽函數(shù)應(yīng)用例子:
1、在頭文件中定義槽函數(shù)
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); //槽函數(shù)聲明 protected slots: void showinfo();//槽函數(shù) void myslot(); //自定義帶參數(shù)的槽函數(shù) signals: void mysignal(); //自定義信號(hào)(不需要實(shí)現(xiàn)),發(fā)送信號(hào)emit mysignal() void sendNum(int num); private slots: void on_closbt_clicked(); void getNum(int num); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
2、在源文件中建立按鈕與槽函數(shù)之間的連接
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug.h> #include <QtWidgets/QStackedLayout> #include "form.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); //把按鈕的信號(hào)與本類的showinfo槽函數(shù)關(guān)聯(lián) connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(showinfo())); //把本類的信號(hào)mysignal與本類的槽函數(shù)myslot()關(guān)聯(lián) connect(this,SIGNAL(mysignal()),this,SLOT(myslot())); connect(this,SIGNAL(sendNum(int)),this,SLOT((int))); } MainWindow::~MainWindow() { delete ui; } //實(shí)現(xiàn)槽函數(shù) void MainWindow::showinfo() { qDebug()<<"信號(hào)與槽函數(shù)測(cè)試"; //發(fā)送信號(hào) emit mysignal(); } void MainWindow::myslot() { qDebug()<<"自定義信號(hào)觸發(fā)"; } void MainWindow::getNum(int num) { qDebug()<<num; } void MainWindow::on_closbt_clicked() { emit sendNum(123); }
到此這篇關(guān)于一文帶你了解Qt中槽的使用的文章就介紹到這了,更多相關(guān)Qt槽內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用C++和QT實(shí)現(xiàn)Log自定義日志系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了如何利用C++和QT實(shí)現(xiàn)Log自定義日志系統(tǒng),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考下2023-12-12C/C++?Qt?數(shù)據(jù)庫(kù)與ComBox實(shí)現(xiàn)多級(jí)聯(lián)動(dòng)示例代碼
Qt中的SQL數(shù)據(jù)庫(kù)組件可以與ComBox組件形成多級(jí)聯(lián)動(dòng)效果,在日常開發(fā)中多級(jí)聯(lián)動(dòng)效果應(yīng)用非常廣泛,今天給大家分享二級(jí)ComBox菜單如何與數(shù)據(jù)庫(kù)形成聯(lián)動(dòng),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-12-12C++ accumulate函數(shù)詳細(xì)介紹和具體案例
這篇文章主要介紹了C++ accumulate函數(shù)詳細(xì)介紹和具體案例,accumulate是numeric庫(kù)中的一個(gè)函數(shù),主要用來(lái)對(duì)指定范圍內(nèi)元素求和,但也自行指定一些其他操作,如范圍內(nèi)所有元素相乘、相除等2022-08-08VSCode插件開發(fā)全攻略之跳轉(zhuǎn)到定義、自動(dòng)補(bǔ)全、懸停提示功能
這篇文章主要介紹了VSCode插件開發(fā)全攻略之跳轉(zhuǎn)到定義、自動(dòng)補(bǔ)全、懸停提示,需要的朋友可以參考下2020-05-05C語(yǔ)言中如何實(shí)現(xiàn)單鏈表刪除指定結(jié)點(diǎn)
這篇文章主要介紹了C語(yǔ)言中如何實(shí)現(xiàn)單鏈表刪除指定結(jié)點(diǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07詳解C語(yǔ)言實(shí)現(xiàn)推箱子的基本功能
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)推箱子的基本功能的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-02-02在c和c++中實(shí)現(xiàn)函數(shù)回調(diào)
如何在c和c++中實(shí)現(xiàn)函數(shù)回調(diào)呢?現(xiàn)在小編就和大家分享一下在c/c++中實(shí)現(xiàn)函數(shù)回調(diào)的示例代碼,需要的朋友可以參考下2013-07-07