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

QT:三大特性

QT的三大特性:

1、信号与槽

2、内存管理

3、事件处理

  • 1、信号与槽

当信号产生时,就会自动调用绑定的槽函数。

自定义信号:
    类中需要添加O_OBJECT宏
    声明:
        signals标签之下进行声明
    定义:
        信号不需要定义
    发送信号:
        emit 信号();
        emit 信号(参数1, 参数2, ....);
        信号可以重载,当槽函数需要参数时由信号给它传递。

自定义槽函数:
    声明:类中的slots标签之下
    定义:通常放在cpp中

总结

使用connect函数绑定信号与槽,解除绑定:disconnect

发送方,发送的信号,接收方,接收方触发的槽函数

connect(产生信号的对象指针(谁产生信号), 信号,处理信号的对象指针(谁调用槽函数), 槽函数);

1、QT4及以前的用法

// 信号或槽函数重载时一定使用此方法

connect ( pb , SIGNAL ( clicked ( bool ) ) , this , SLOT ( pb_input_handler ( ) ) ) ;

2、QT5的用法

// 不适合用于有重载的情况

connect( pb , &QPushButton::clicked , this , &Widget::pb_input_handler ) ;

3、lambda表达式

// 不适合用于有重载的情况

// [ ]捕获参数:“=”为使用值传递,“&”为使用地址传递

connect ( pb , &QPushButton::clicked , [ ]( ){

}) ;

槽函数的参数:
    槽函数的参数是由信号传递
    槽函数的参数个数 <= 信号的参数个数
    槽函数的参数类型与对应的信号的参数类型一致

信号与槽对应关系:
    1对1:一个信号对应一个槽函数
    1对多:一个信号可以对应多个槽函数,当信号产生时所有绑定的槽函数按顺序执行
    多对1:多个信号可以对应一个槽函数,只有其中任何一个信号产生都会调用一次这个槽函数

  • 2、内存管理

对象树机制:QT中的对象可以组织成树状结构,每个对象可以有一个父对象,当父对象被销毁时,其所有子对象也会被自动销毁,从而简化了内存管理。

  • 3、事件处理

QApplication类是QT应用程序的核心类,负责管理整个应用程序的生命周期、事件处理和全局资源,是QT应用程序的入口点和核心控制器。QApplication类提供了事件循环,负责接收和分发事件,处理用户输入和系统事件,并将事件发送给对应的对象进行处理。

http://www.lryc.cn/news/324023.html

相关文章:

  • 无服务器推理在大语言模型中的未来
  • 【linux】CentOS查看系统信息
  • 部署dagu_1.12.10+replicadb0.15.1+sqlline1.12
  • 基于Java中的SSM框架实现社会保险管理系统项目【项目源码+论文说明】
  • 24计算机考研调剂 | 江西理工大学
  • Sentry(Android)源码解析
  • Android StateLayout状态页
  • JetBrains数据库驱动下载失败解决方法
  • 【vim 学习系列文章 16 -- vim 自动保存设置】
  • python的O2O生鲜食品订购flask-django-nodejs-php
  • 六、大模型-Prompt-API介绍
  • 嵌入式安全性基础知识-计算机系统安全知识+信息安全基础+网络安全协议-嵌入式系统设计师备考笔记
  • 基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现
  • jenkins构建完成后部署到本机,无法读取容器外文件夹
  • 如何使用 Elasticsearch 作为向量数据库
  • 高精度AI火灾烟雾检测算法,助力打造更加安全的楼宇环境
  • node和npm yarn包管理工具
  • 鸿蒙Harmony应用开发—ArkTS(@Link装饰器:父子双向同步)
  • 【数据结构】猛猛干7道链表OJ
  • 记录C++中,子类同名属性并不能完全覆盖父类属性的问题
  • 使用 ONLYOFFICE API 构建 Java 转换器,在 Word 和 PDF 之间进行转换
  • SpringCloudAlibaba Nacos配置及应用
  • #Linux(权限管理)
  • easyExcel复杂表头导出
  • 【大数据】五、yarn基础
  • 语义分割实战项目(从原理到代码环境配置)
  • 基于python+vue 的一加剧场管理系统的设计与实现flask-django-nodejs-php
  • 【Entity Framework】 EF中DbContext类详解
  • 智能风扇的新篇章:唯创知音WTK6900G语音识别芯片引领行业革新
  • [json.exception.type_error.316] invalid UTF-8 byte报错