当前位置: 首页 > article >正文

Qt中的connect函数

1. 介绍

connect函数是Qobject类提供的静态成员函数,这个Qobject类是Qt中所有类的祖宗类,这个机制类似于JAVE中同样也是有一个Object祖宗类,QWidget类属于Qobject类的子类,所以包括QPushButton这些控件等等,都可以使用这个connect函数

2. connect的具体使用

图中的示例是简单创建一个具有关闭按钮的界面的示例中,connect的部分,这个示例很简单,先创建好工程,然后只需要在QWidget类里面,简单用代码的方式创建一个PushButton空间,然后将按钮和QWidget空间的用于关闭的槽函数关联起来即可

#include "widget.h"
#include "ui_widget.h"
#include <QPushButton>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    QPushButton* button = new QPushButton(this);
    button->setText("关闭");
    button->move(300,300);
    connect(button,&QPushButton::clicked,this,&QWidget::close);
}

Widget::~Widget()
{
    delete ui;
}

但仔细看文档会发现,第二个参数和第四个参数的类型是char*,但是我们在具体使用的时候,传入的其实是函数指针,在C++的语法当中,这是不被允许的,但这个能通过的原因是:

在Qt5开始后,对这部分进行了更新,对connect函数进行了泛型编程,而且加入了类型萃取器的方式,严格的控制了第一个参数和第二个参数必须相关(这里的相关指的是,第二个参数的信号必须是来着第一个参数的类内或者其父类继承下来的),第三个参数和第四个参数必须相关,更新前需要使用两个宏去对函数指针进行转换的,分别是SIGNAL和SLOT,但现在不用。

总结

为了加深信号与槽的学习,总结了关于connect函数的基本使用,并且举了个简单的小例子,接下来会零零散散的去总结一些在学习信号和槽过程中的一些小知识点,最后如果有时间会整理起来到一个博客中。


http://www.kler.cn/a/517031.html

相关文章:

  • 无所不搜,吾爱制造
  • 后端:MyBatis
  • 激光雷达和相机早期融合
  • 什么是COLLATE排序规则?
  • Java 中多态与接口的全面解析
  • Harmony Next 支持创建分身
  • mysql学习笔记-数据库的设计规范
  • 在Qt中实现点击一个界面上的按钮弹窗到另一个界面
  • Xcode各个历史版本下载地址
  • 一文速通stack和queue的理解与使用
  • 根据条件更改el-tree的字体颜色
  • 【物联网】ARM核常用指令(详解):数据传送、计算、位运算、比较、跳转、内存访问、CPSR/SPSR、流水线及伪指令
  • Linux探秘坊-------4.进度条小程序
  • 基于微信小程序的汽车保养系统设计与实现(LW+源码+讲解)
  • 关于单通道串口服务器的详细讲解
  • uniapp APP端页面触发调用webview(页面为uniapp开发的H5)里的方法
  • 速通Docker === Docker Compose
  • WebAssembly视频检测在社区创作平台的落地与实践 | 得物技术
  • 设计模式的艺术-职责链模式
  • 解决npm install总是卡在sill idealTree buildDeps不动问题
  • 【java】签名验签防篡改研究测试
  • 解决Python 在 Flask 开发模式下定时任务启动两次的问题
  • C# OpenCV机器视觉:交通标志识别
  • 【Uniapp-Vue3】下拉刷新
  • 最新-CentOS 7 基于1 Panel面板安装 JumpServer 堡垒机
  • maven打包springboot项目出现找不到符号错误