信号/插槽连接总数?

时间:2015-10-06 18:48:05

标签: c++ qt

有没有办法在Qt应用程序中找到信号/插槽连接的总数有人向我推荐伽马射线,但有没有更简单的解决方案?

1 个答案:

答案 0 :(得分:1)

检查Qt::UniqueConnection

  

这是一个可以使用按位OR与上述任何一种连接类型组合的标志。当设置Qt :: UniqueConnection时,如果连接已经存在,QObject :: connect()将失败(即,如果相同的信号已连接到同一对对象的相同插槽)。 [...]

然后在连接已经存在的情况下使用断言,这将使程序崩溃,指示编程错误:

QLabel *label = new QLabel;
QLineEdit *lineEdit = new QLineEdit;
auto ok = QObject::connect(lineEdit, &QLineEdit::textChanged,
             label,  &QLabel::setText,
             Qt::UniqueConnection);
Q_ASSERT(ok);

免责声明:未经测试。