Мне нужно запустить внешнее приложение, нажав кнопку и заблокировав основное приложение.Нажатие кнопки qpushbutton при qprocessevent waitforfinished
Используя приведенный ниже код, когда основное приложение заморожено, кнопка на нем, похоже, помещает событие (или основное приложение) в очередь.
Когда основное приложение возвращается, кнопка запускает относительное событие числом раз, которое было нажато, когда оно было отключено.
Я надеюсь, что вы не нашли.
QApplication::setOverrideCursor(Qt::WaitCursor);
ui.ProgramPushButton->blockSignals(true);
ui.ProgramPushButton->setEnabled(false);
QApplication::processEvents();
process.setWorkingDirectory(external_program_workingdir);
process.start(file);
process.waitForFinished(-1);
ui.ProgramPushButton->blockSignals(false);
ui.ProgramPushButton->setEnabled(true);
QApplication::restoreOverrideCursor();
что я пропустил?
да жаль .. я редактировал код, прежде чем отправлять его. – SNC
Хорошо, вы пытались запустить QApplication :: processEvents(), когда процесс завершается, прежде чем разблокировать сигналы и поменять кнопку? – TheDarkKnight