【发布时间】:2015-07-25 20:14:22
【问题描述】:
我想在基类中有一个QObject::connect 的代理。目标是将connect 返回的所有QMetaObject::Connection 存储在一个向量中。
class MyBaseClass : public QObject {
Q_OBJECT;
template <typename... Args>
void addConnection(Args... args) {
auto c = this->connect(args...);
if (c) {
connections.push_back(c);
}
}
问题是连接不再起作用。当我从继承MyBaseClass 的类发出信号时,它什么也不做。例如,这确实有效:
connect(this, &ClassThatInheritsBaseClass::valueChanged, [this](int v) {
qDebug() << QString::number(value);
}
但这不起作用:
addConnection(this, &ClassThatInheritsBaseClass::valueChanged, [this](int v) {
qDebug() << QString::number(value);
}
有人能解释一下为什么它不起作用吗?以及如何让它发挥作用?
【问题讨论】:
-
上次检查时,Qt 不支持可变参数模板。