2015-04-20 2 views
1

Я работаю над приложением Qt, которое имеет возможность использовать скрипт для выполнения нескольких действий. Одна команда внутри скрипта требует, чтобы произошло внешнее событие, пока не будет вычислена следующая команда в списке (которая равна , а не для остальных команд).qt wait for signal/event, GUI

Обычно я открываю файл, читаю строку сценария и обрабатываю его. Это повторяется до достижения EOF.

Испускать сигнал, когда произошло внешнее событие, но функция, которая проходит через скрипт, должна быть остановлена ​​в течение этого промежутка времени.

Как я могу архивировать это без блокировки ответа GUI?

Спасибо!

+0

переместить их в разных потоках? – user3528438

ответ

1

Я хотел бы сделать это следующим образом:

public: 
    void execute_script() { 
    //open file 
    continue_execution(); 
    } 

public slots: 
    void continue_execution() { 
    while(!file.atEnd()) { 
     //read and process command 
     if(async_command) { 
     //make sure the signal indicating command completion 
     //is connected to continue_execution() slot 
     return; 
     } 
    } 
    emit script_finished(); 
    }