Qt qprocessevent waitforfinished时按qpushbutton
我需要通过按下按钮运行一个外部应用程序并冻结主应用程序 当主应用程序冻结时,使用下面的代码,它上的按钮似乎将事件或主应用程序排队 当主应用程序返回可用时,按钮将运行相对事件,即禁用时单击的次数 我希望你能理解Qt qprocessevent waitforfinished时按qpushbutton,qt,qprocess,qpushbutton,Qt,Qprocess,Qpushbutton,我需要通过按下按钮运行一个外部应用程序并冻结主应用程序 当主应用程序冻结时,使用下面的代码,它上的按钮似乎将事件或主应用程序排队 当主应用程序返回可用时,按钮将运行相对事件,即禁用时单击的次数 我希望你能理解 QApplication::setOverrideCursor(Qt::WaitCursor); ui.ProgramPushButton->blockSignals(true); ui.ProgramPushButton->setEnabled(false); QApplic
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();
我想念什么
QApplication::setOverrideCursor(Qt::WaitCursor);
ui.ProgramPushButton->blockSignals(true);
ui.serviceProgramPushButton->setEnabled(false);
看起来blockSignals函数应该应用于ui.serviceProgramButtown,而不是ui.ProgramButtownOk,在取消阻止信号并重新启用按钮之前,您是否尝试在进程退出时运行QApplication::processEvents?