Я работаю с Qt, Directx 11 и C ++. Когда мой виджет открывается, я запускаю Engine с системой-> Run (). Эта функция вызывает каждый кадр функцией с именем Frame (), если для переменной done установлено значение false.
Когда в моем классе Qt вызывается событие закрытия, я хочу выключить двигатель. Поэтому я создал функцию с именем isDone (), которая устанавливает переменную в значение false, а затем я освобождаю все переменные, которые я создал, с помощью System-> Shutdown (). Но проблема в том, что программа аварийно завершает работу, поскольку при вызове события закрытия функция System-> Run () прерывается до тех пор, пока не завершится событие закрытия, но я хочу, чтобы функция Run () выполнялась после вызова из функция isDone () перед выполнением функции System-> Shutdown ().
Есть ли возможность сделать прерывание в событии закрытия, чтобы другие вещи в очереди выполнялись?
Есть ли возможность сделать прерывание в событии закрытия, чтобы другие вещи в> очереди выполнялись?
Вы можете вызвать qApp-> processEvent в цикле и подождать некоторый флаг.
Других решений пока нет …