После выполнения сценария оболочки графический интерфейс QT блокируется - PullRequest
2 голосов
/ 24 марта 2011

У меня есть графический интерфейс, реализованный с помощью QT. Графический интерфейс имеет много кнопок, и одна из них выполняет сценарий оболочки:

system("/bin/sh executeScene.sh");

Сценарий выполняется правильно, но графический интерфейс блокируется, пока я не закрою сценарий, который был ранее вызван. Есть ли способ выполнить мой сценарий оболочки, не блокируя графический интерфейс?

В графическом интерфейсе есть еще одна кнопка для остановки скрипта оболочки, но, поскольку графический интерфейс заблокирован, я не могу остановить скрипт.

Ответы [ 2 ]

5 голосов
/ 24 марта 2011

Используйте QProcess для асинхронного запуска процесса.

2 голосов
/ 21 мая 2014

хе, я использовал это для одного из моих приложений с графическим интерфейсом ...

    void MainWindow::on_pushButton_clicked()
    {
        QProcess process;
        process.startDetached("/bin/sh", QStringList()<< "/path/to/your/shell.sh");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...