Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt qprocessevent waitforfinished时按qpushbutton_Qt_Qprocess_Qpushbutton - Fatal编程技术网

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.ProgramButtown

Ok,在取消阻止信号并重新启用按钮之前,您是否尝试在进程退出时运行QApplication::processEvents?