qt-C++笔记之作用等同的宏和关键字
code review!
-
Q_SLOT 和 slots:
Q_SLOT
是slots
的替代宏,用于声明槽函数。
-
Q_SIGNAL 和 signals:
Q_SIGNAL
类似于signals
,用于声明信号。
-
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
发射信号通常看起来这样:Q_EMIT signalName(argument);
这与使用
emit
是等价的:emit signalName(argument);
在 Qt 的官方文档和推荐的编码风格中,
Q_EMIT
被推荐使用,尽管在实际的 Qt 源代码中emit
用得更为广泛。
-