У меня есть простой QMainWindow
, в котором пользователь может установить некоторые параметры. У меня есть три кнопки, которые при нажатии создают новый QProcess
, отображающий QMainWindow
. Например, кнопка главного окна A
запускает QProcess A
, кнопка главного окна B
запускает процесс B
и т. Д. Я хотел был бы иметь возможность взаимодействовать с главным окном, потому что теперь, когда я нажимаю кнопку, QProcess
запускается правильно, отображая другой окно и т. д., но исходное основное окно остается замороженным до конца QProcess
.QProcess начинается с окна QMainWindow freezes
Есть ли способ поддерживать оперативное реагирование на основное окно, чтобы можно было с ним взаимодействовать WHILE QProcess/QProcesses запускается/запускается?
EDIT: вот как я начинаю процессы:
QProcess process;
process.execute("../../RRTStar/RRTStar", QStringList() << "--file" << "../../settings.conf");
где RRTStar
это имя исполняемого файла и --file ../../settings.conf
являются параметрами командной строки. Обратите внимание, что RRTStar состоит из MainWindow и выполняет тяжелые вычисления с использованием потоков.
Покажите нам, как вы запускаете процессы? – Evgeny
Qt имеет очень хорошие документы. Если ваш любимый редактор/IDE не поддерживает контекстно-зависимую справку с Qt-кодом, вы должны запустить Qt Creator сбоку, так что вы можете, например, в этом случае поместить курсор в имя метода 'execute()', нажать F1 , а затем прочитайте документацию, указанную в этом ответе ниже. – hyde
Вы, похоже, не поняли мой вопрос. Мне не нужен способ взаимодействия с 'QProcess', который уже работает, поскольку новое окно процесса является отзывчивым. Проблема в том, что главное окно остается замороженным, пока оконный процесс не завершится и не закончится.Кажется, что нет способа решить эту проблему, все документы и вопросы связаны с QDialog/QMessageBox. – Michael