Делаю скриптовый движек для лаборатории, в котором много разного оборудования. Что-то вроде браузерный js, только оперирует он не кнопочками и всякой прочей ненужностью, а железными вольтметрами, высокоамперными генераторами тока, моторами для поворота sampleplate и прочими нужностями.
Так вот. Стокнулся с такой архитектурной проблемой. Я создаю QCoreApplication, потом создаю класс этого самого моторчика, устанавливаю у него эти самые globalObjects, которые представляют устройства из скрипта и запускаю. Моторчик скрипт интерпретирует, делает с устройствами то, что запрограмировано, а потом завершает работу. И вот потом, надо запускать app.exec(), но оно тогда просто зависает, т.е. ждёт ивентов, которые никогда не придут, потому-что скрипт уже закончился. Сейчас сделано просто return 0, т.е. app.exec() не запускается, но мне это как кажется архитектурно не верным.
Было бы классно, если бы к моторчику присоедить какой-то сигнал из QCoreApplicaition, как в QThread - started() например, и по этому сигналу запускать обработку скрипта, а когда она закончится, эмитить finished, который к qApp.quit() соединёт. Но такого сигнала нет, вижу только aboutToQuit(), который мне не нужен.
Может кто-нибудь что-нибудь подскажет как бы так сделать по красивее? Или у меня уже qt головного мозга?