日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

一文帶你了解Qt中槽的使用_C 語言

作者:音視頻開發老舅 ? 更新時間: 2023-01-18 編程語言

一、建立槽和按鈕之間的連接

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()

槽函數應用例子:

1、在頭文件中定義槽函數

#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();
//槽函數聲明
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 <QDebug.h>
#include <QtWidgets/QStackedLayout>
#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);
}

原文鏈接:https://blog.csdn.net/m0_60259116/article/details/128345661

欄目分類
最近更新