Qt中的SIGNAL和SLOT宏:它们是做什么用的?

Qt中的SIGNAL和SLOT宏:它们是做什么用的?

补充第一个答案。

宏SIGNAL和SLOT到底是做什么的?

几乎什么也没做。看一下qobjectdefs.h:

# define SLOT(a) "1"#a

# define SIGNAL(a) "2"#a

它只是添加了1或2。这意味着下一行代码是有效的,并且能够按照预期工作:

QObject *obj = new QObject;

connect(obj,"2objectNameChanged(QString)",this,"1show()");//suppose this is a pointer to a QDialog subclass

obj->setObjectName("newNAme");

大多数程序员为什么使用这些宏而不是像 &Obj1::signal 这样的方式呢?

因为这些宏不仅适用于Qt5。

因为使用这些宏可以避免处理重载信号时带来的复杂性(可能会使代码变得混乱,而且并不简单)。

因为在新语法中,有时需要使用特定的断开连接方式。

更多细节请参见此处。

相关推荐

微博群在哪里找
bt365体育手机客户端

微博群在哪里找

📅 08-13 👁️ 4820
罗马尼亚购物攻略
365bet官方平台开户

罗马尼亚购物攻略

📅 12-20 👁️ 3250
在 PowerPoint 中插入圖片
365bet官方平台开户

在 PowerPoint 中插入圖片

📅 12-31 👁️ 2814
华为手机手写功能:从启用到使用的一步到位
365bet网上网投

华为手机手写功能:从启用到使用的一步到位

📅 08-14 👁️ 8642
最新豌豆ip代理
365bet网上网投

最新豌豆ip代理

📅 07-18 👁️ 2321