команды должны исполняться сразу после обработки. Если встречается текстовая команда "pause N" функция обработки команд должна остановиться на N секунд, после этого продолжить обрабатывать остальные команды. Как это можно сделать без зависания GUI?
С помощью QTimer. Делаешь его чтоб срабатывал один раз. Ставишь N секунд. А в слоте по срабатыванию таймера просто достаешь уже следующую команду и выполняешь.
Метод QTimer::singleShot который?
Это метод сразу запускает одиночный таймер со слотом, и ты не сможешь управлять таймером. Можешь просто создать таймер, назначить интервал setInterval(N * 1000), где N - секунды. Таймер принимает милисекунды. Потом задай ему чтоб сработал один раз setSingleShot(true). Подключайся к сигналу таймера timeout. Когда надо сделать паузу, запускай таймер. По истечению N секунд вызовется твой слот, где ты будешь выполнять след команды
Как вариант, спасибо
Обсуждают сегодня