У меня есть кнопка, связанная при нажатии с myfuntion, см. Ниже.QEventLoop уже вызвал exec() даже с exit() до
Я использую QEventLoop, потому что я жду событие, которое вызовет _myEventLoop.exit (0);
При нажатии на кнопку два раза подряд, не дожидаясь случая, чтобы произошло, я получаю сообщение об ошибке:
QEventLoop::exec: instance 0x22f47378 has already called exec()
Я делаю вызов для выхода (1) перед вызовом Exec(), но это кажется, что этот выход возвращается немедленно, затем функция passe от exec(), так как она все еще работает return 1, myfunction возвращает и только тогда первый exec() возвращает с 1.
Как я могу быть уверен, что предыдущий вызов exec() вернулся, прежде чем продолжить?
void myfuntion()
{
_myEventLoop.exit(1);
if(_myEventLoop.exec() == 0)
{
// DoSomething
}
}
Какова цель здесь именно? Я не вижу, в чем смысл перезапуска локального цикла событий снова и снова. – thuga
Моя цель состояла в том, чтобы заблокировать пользователя функции до некоторого события. И если функция была вызвана someonde else, чтобы освободить первого пользователя и заблокировать последнего вызывающего. Из того, что я понял, как работает eventLoop, я не могу, и я полностью изменил концепцию. – Giacogiac
@ Giacogiac не могли бы вы продумать свой подход, который сработал? – RDP