我有以下源代码:
Processmethod()
{
QDialog *ProcessMessage = new QDialog;
Ui::DialogProcessMessage Dialog;
Dialog.setupUi(ProcessMessage);
ProcessMessage->setModal(true);
ProcessMessage->setAttribute(Qt::WA_DeleteOnClose);
ProcessMessage->show();
PROCESSES START
}
在我想显示QDialog“ ProcessMessage”之后,以下三种不同的方法中包含了三个QProcess进程。如果我使用
//
禁用了这些方法,则弹出窗口看起来很好,但是如果启用这些方法,则进程可以正常运行,但是不会出现弹出窗口。有什么想法/解决方案吗?问候 最佳答案
在主函数中实现了主应用程序循环之后,直到不返回Process方法,您的窗口才会显示
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QDialog w; // or other window
w.show();
return a.exec(); // main app loop (all drawing procedures called from here
}
因此,如果您调用过程启动,则直到Process方法在QApplication :: exec()中返回之前,什么都没有发生
您可以在单独的线程中启动进程,并通过在队列模式下实现信号\插槽来向对话框发送进度通知