How can I pass signal or slot (member-function, new syntax in Qt 5) as a parameter to function and then call connect
?
e.g. I want to write a function that waits for a signal.
Note: It is not compile - PointerToMemberFunction
is my question.
bool waitForSignal(const QObject* sender, PointerToMemberFunction??? signal, int timeOut = 5000/*ms*/) { if (sender == nullptr) return true; bool isTimeOut = false; QEventLoop loop; QTimer timer; timer.setSingleShot(true); QObject::connect(&timer, &QTimer::timeout, [&loop, &isTimeOut]() { loop.quit(); isTimeOut = true; }); timer.start(timeOut); QObject::connect(sender, signal, &loop, &QEventLoop::quit); loop.exec(); timer.stop(); return !isTimeOut; }
Is there any way to pass list of signals to this function for connection?