qt中如何定義槽(QT中槽的使用)
2023-05-14 22:54:38 3
qt中如何定義槽?connect(信號發送者,發送的信號,信號接收者,信號接收者的槽函數),今天小編就來聊一聊關於qt中如何定義槽?接下來我們就一起去研究一下吧!

qt中如何定義槽
一、建立槽和按鈕之間的連接connect(信號發送者,發送的信號,信號接收者,信號接收者的槽函數)
1、例子
connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(showinfo));解釋:信號反發送者:pushButton(這是一個按鈕),發送信號:clicked(點擊按鈕),信號接收者:this(本類),信號接收者的槽函數:showinfo(點擊按鈕後響應的函數)
二、槽函數的定義(1)槽函數
protected slots: void showinfo;
(2)自定義帶參數的槽函數
signals: void mysignal; //自定義信號(不需要實現),發送信號emit mysignal
【領更多Qt學習資料,點擊下方連結免費領取↓↓,先碼住不迷路~】
點擊→Qt開發進階技術棧學習路線和資料
槽函數應用例子:
1、在頭文件中定義槽函數
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow;//槽函數聲明protected slots: void showinfo;//槽函數 void myslot;//自定義帶參數的槽函數 signals: void mysignal; //自定義信號(不需要實現),發送信號emit mysignal void sendNum(int num);private slots: void on_closbt_clicked; void getNum(int num);private: Ui::MainWindow *ui;};#endif // MAINWINDOW_H
2、在源文件中建立按鈕與槽函數之間的連接
#include "mainwindow.h"#include "ui_mainwindow.h"#include #include #include "form.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); //把按鈕的信號與本類的showinfo槽函數關聯 connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(showinfo)); //把本類的信號mysignal與本類的槽函數myslot關聯 connect(this,SIGNAL(mysignal),this,SLOT(myslot)); connect(this,SIGNAL(sendNum(int)),this,SLOT((int)));}MainWindow::~MainWindow{ delete ui;}//實現槽函數void MainWindow::showinfo{ qDebug<<"信號與槽函數測試"; //發送信號 emit mysignal;}void MainWindow::myslot{ qDebug<<"自定義信號觸發";}void MainWindow::getNum(int num){ qDebug<<num;}void MainWindow::on_closbt_clicked{ emit sendNum(123);}
,