• 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、在头文件中定义槽函数

    1. #ifndef MAINWINDOW_H
    2. #define MAINWINDOW_H
    3. #include
    4. namespace Ui {
    5. class MainWindow;
    6. }
    7. class MainWindow : public QMainWindow
    8. {
    9. Q_OBJECT
    10. public:
    11. explicit MainWindow(QWidget *parent = 0);
    12. ~MainWindow();
    13. //槽函数声明
    14. protected slots:
    15. void showinfo();//槽函数
    16. void myslot();
    17. //自定义带参数的槽函数
    18. signals:
    19. void mysignal(); //自定义信号(不需要实现),发送信号emit mysignal()
    20. void sendNum(int num);
    21. private slots:
    22. void on_closbt_clicked();
    23. void getNum(int num);
    24. private:
    25. Ui::MainWindow *ui;
    26. };
    27. #endif // MAINWINDOW_H

    2、在源文件中建立按钮与槽函数之间的连接

    1. #include "mainwindow.h"
    2. #include "ui_mainwindow.h"
    3. #include
    4. #include
    5. #include "form.h"
    6. MainWindow::MainWindow(QWidget *parent) :
    7. QMainWindow(parent),
    8. ui(new Ui::MainWindow)
    9. {
    10. ui->setupUi(this);
    11. //把按钮的信号与本类的showinfo槽函数关联
    12. connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(showinfo()));
    13. //把本类的信号mysignal与本类的槽函数myslot()关联
    14. connect(this,SIGNAL(mysignal()),this,SLOT(myslot()));
    15. connect(this,SIGNAL(sendNum(int)),this,SLOT((int)));
    16. }
    17. MainWindow::~MainWindow()
    18. {
    19. delete ui;
    20. }
    21. //实现槽函数
    22. void MainWindow::showinfo()
    23. {
    24. qDebug()<<"信号与槽函数测试";
    25. //发送信号
    26. emit mysignal();
    27. }
    28. void MainWindow::myslot()
    29. {
    30. qDebug()<<"自定义信号触发";
    31. }
    32. void MainWindow::getNum(int num)
    33. {
    34. qDebug()<
    35. }
    36. void MainWindow::on_closbt_clicked()
    37. {
    38. emit sendNum(123);
    39. }

    本文福利, 免费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT图像,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓ 

  • 相关阅读:
    2023年中国液压胀管分类、产量及市场规模分析[图]
    物联网开发学习笔记——目录索引
    考过HCIP入职心仪公司,分享华为认证学习经历及心得
    centos7安装ffmpeg
    openfeign原理
    安装gensim,fasttsxt,以及如何安装后缀whl文件,tar.gz文件
    数据权限就该这么设计,yyyds!
    《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(19)-Fiddler精选插件扩展安装,将你的Fiddler武装到牙齿
    基于springboot小区物业管理系统
    ubantu搭建cdh6(自己留的草稿版本)
  • 原文地址:https://blog.csdn.net/m0_60259116/article/details/127653422