qt-C++笔记之作用等同的宏和关键字

qt-C++笔记之作用等同的宏和关键字

code review!

  1. Q_SLOT 和 slots

    • Q_SLOTslots的替代宏,用于声明槽函数。
  2. Q_SIGNAL 和 signals

    • Q_SIGNAL类似于signals,用于声明信号。
  3. Q_EMIT 和 emit

    • Q_EMIT 是 Qt 中用于发射信号的宏,其作用等同于 emit 关键字。Q_EMIT 的引入主要是为了提高代码的可读性和一致性,避免关键字冲,特别是在那些 emit 可能与其他语义冲突的环境中(如某些编译器或代码分析工具可能不识别 emit 为特殊关键字)。

    • 为什么使用 Q_EMIT 而不是 emit?

      • 可读性和一致性Q_EMIT 明确标示发射信号的操作,与 Qt 的其他宏(如 SIGNAL, SLOT, Q_OBJECT)风格一致。
      • 避免关键字冲突 :在一些编程环境中,emit 可能被定义为其他用途,使用 Q_EMIT 可以避免潜在的名称冲突。
    • 示例

      使用 Q_EMIT 发射信号通常看起来这样:

      cpp 复制代码
      Q_EMIT signalName(argument);

      这与使用 emit 是等价的:

      cpp 复制代码
      emit signalName(argument);

      在 Qt 的官方文档和推荐的编码风格中,Q_EMIT 被推荐使用,尽管在实际的 Qt 源代码中 emit 用得更为广泛。

相关推荐
小小码农Come on8 小时前
QML怎么使用C++多线程编程
开发语言·c++
沛沛rh458 小时前
用 Rust 实现用户态调试器:mini-debugger项目原理剖析与工程复盘
开发语言·c++·后端·架构·rust·系统架构
云栖梦泽8 小时前
Linux内核与驱动:13.从设备树到Platform平台总线
linux·运维·c++·嵌入式硬件
qeen879 小时前
【算法笔记】模拟与高精度加减乘除
c++·笔记·算法·高精度·模拟
txinyu的博客9 小时前
高并发内存池 - 简化版 tcmalloc
c++
少司府9 小时前
C++基础入门:内存管理
c语言·开发语言·c++·内存管理·delete·new·malloc
U盘失踪了9 小时前
什么是B/S 架构和 C/S 架构
笔记
郝学胜-神的一滴9 小时前
从零起步:CMake基础入门与实战跨平台编译
c++·软件工程·软件构建·cmake
像一只黄油飞10 小时前
第二章-02-注释
笔记·python·学习·零基础
charlie11451419110 小时前
嵌入式现代C++工程实践——第14篇:第二次重构 —— 模板登场,编译时绑定端口和引脚
开发语言·c++·stm32·安全·重构