一文带你了解Qt中槽的使用

 更新时间:2022年12月18日 10:17:43   作者:音视频开发老舅  
这篇文章主要为大家详细介绍了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()

槽函数应用例子:

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);
}

到此这篇关于一文带你了解Qt中槽的使用的文章就介绍到这了,更多相关Qt槽内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++中String增删查改模拟实现方法举例

    C++中String增删查改模拟实现方法举例

    这篇文章主要给大家介绍了关于C++中String增删查改模拟实现方法的相关资料,String是C++中的重要类型,程序员在C++面试中经常会遇到关于String的细节问题,甚至要求当场实现这个类,需要的朋友可以参考下
    2023-11-11
  • vscode工程中c_cpp_properties.json文件作用详细说明

    vscode工程中c_cpp_properties.json文件作用详细说明

    c_cpp_properties.json是Visual Studio Code的一个配置文件,用于定义C/C++编译器的路径、默认包含路径和预处理器定义,这篇文章主要给大家介绍了关于vscode工程中c_cpp_properties.json文件作用详细说明的相关资料,需要的朋友可以参考下
    2024-08-08
  • C++ 函数重载详情介绍

    C++ 函数重载详情介绍

    这篇文章主要介绍了C++ 函数重载详情,函数重载还有一个别名叫函数多态,函数多态是C++在C语言基础上的新特性,它可以让我们使用多个同名函数,下面来看看文章具体内容的介绍
    2021-11-11
  • windows上配置vscode C/C++代码跳转的实现

    windows上配置vscode C/C++代码跳转的实现

    C/C++官方的C/C++插件,必备的插件,是代码跳转、自动补全、代码大纲显示等功能的基础,本文主要介绍了windows上配置vscode C/C++代码跳转,感兴趣的可以了解一下
    2023-09-09
  • C++中函数重载与引用的操作方法

    C++中函数重载与引用的操作方法

    C++中函数重载允许同名函数根据参数列表的不同而执行不同的功能,这依赖于名字修饰或名字改编(Name Mangling)机制,而引用则是为变量创建一个别名,不会开辟新的内存空间,本文介绍了C++中函数重载与引用的操作,感兴趣的朋友一起看看吧
    2024-10-10
  • C语言 数据结构之连续存储数组的算法

    C语言 数据结构之连续存储数组的算法

    这篇文章主要介绍了C语言 数据结构之连续存储数组的算法的相关资料,需要的朋友可以参考下
    2017-01-01
  • C语言中多维数组的内存分配和释放(malloc与free)的方法

    C语言中多维数组的内存分配和释放(malloc与free)的方法

    写代码的时候会碰到多维数组的内存分配和释放问题,在分配和释放过程中很容易出现错误。下面贴上一些示例代码,以供参考。
    2013-05-05
  • C++ std:map的使用方法

    C++ std:map的使用方法

    std::map是C++标准库中一个强大而高效的关联容器,本文就来介绍一下C++ std:map的使用方法,具有一定的参考价值,感兴趣的可以了解一下
    2025-02-02
  • 双向链表插入删除基本应用介绍

    双向链表插入删除基本应用介绍

    本文将详细介绍建立双向链表,实现对双向链表的插入,删除操作,需要了解的朋友可以参考下
    2012-11-11
  • C++20中的结构化绑定类型示例详解

    C++20中的结构化绑定类型示例详解

    这篇文章主要为大家介绍了C++20中的结构化绑定类型示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04

最新评论