信号/插槽连接的总数?
This is a flag that can be combined with any one of the above connection types, using a bitwise OR. When Qt::UniqueConnection is set, QObject::connect() will fail if the connection already exists (i.e. if the same signal is already connected to the same slot for the same pair of objects). [...]
然后使用的情况下断言的连接也存在,这将你的程序崩溃表明一个编程错误:
QLabel *label = new QLabel;
QLineEdit *lineEdit = new QLineEdit;
auto ok = QObject::connect(lineEdit, &QLineEdit::textChanged,
label, &QLabel::setText,
Qt::UniqueConnection);
Q_ASSERT(ok);
免责声明:未经测试。
'bool ok = QObject :: connect'是错误的。返回类型是'QMetaObject :: Connection' - 它可以用于将来的诊断。 –
好吧,我想'运算符布尔()'处理。固定。 –
无论如何,您的解决方案不是一个答案,因为您无法统计现有连接的数量。 –
您正在谈论信号/插槽连接,对吗?我调整了这个问题,因为“连接”可能是数据库或网络。你是否想要计算Qt内部连接,还是只计算你自己的对象?你需要什么信息?可能有更好的解决方案。这有帮助吗? http://*.com/questions/2755694/determine-signals-connected-to-a-given-slot-in-qt –
感谢您的意见和编辑,我实际上正在寻找一种方法来检查和检查是否有是重复的连接,就像有些时候同一个信号/插槽对连接多次一样。 – Nyaruko
@Nyaruko不是你的问题的答案,但如果你想避免重复,你可以使用'Qt :: UniqueConnection'标志。顺便说一句,GammaRay是开源的,你可以研究它的代码。这是非常强大的工具。 –