как подключить сигнал к нестатическому методу статического члена - PullRequest
0 голосов
/ 26 апреля 2018

Можно ли каким-либо образом подключиться к нестатическому методу статического члена, если этот член не является 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???
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...