Можно ли каким-либо образом подключиться к нестатическому методу статического члена, если этот член не является QObject
? Я знаю об обходном пути, использующем лямбду, но мне любопытно, есть ли другой способ, о котором я не знаю.
class Value { // not a QObject!
void setValue(int);
}
class Globals {
static Value value; // is static member!
}
class Sender : public QObject {
signals:
void valueChanged(int);
}
Sender *sender;
// the following does not work because Value is not a QObject
connect(sender, &Sender::valueChanged, &Globals::value, &Value::setValue);
// the following is a naive attempt, it is not a correct C++
connect(sender, &Sender::valueChanged, &Globals::value.setValue);
// this works but is ugly
connect(sender, &Sender::valueChanged, [](int val) { Globals::value.setValue(val); });
// is there another way???