我正在使用 QT 4.8.5 进行 QWizard,在某些页面中我必须关闭其他一些应用程序并退出我的程序。这工作正常,但现在我想显示一条弹出消息,告诉用户程序正在重新启动(我的其他部分是我的一部分,我的是最后一个总是关闭的)。我用来显示弹出窗口的代码是下一个,我将它放在 QWizardpage 的 validatepage 中:
QMessageBox *msgBox1 = new QMessageBox;
msgBox1->setWindowTitle("Title...");
msgBox1->setIcon(QMessageBox::Information);
msgBox1->setText(" blablablalbal bla bla bla.");
msgBox1->setWindowModality(Qt::NonModal);
msgBox1->show();
QCoreApplication::processEvents(); // without this line, the show does nothing and I can't see my pop up window
所以问题是:使用该代码,当我在该向导页面中并单击完成时,它会启动 QMessageBox 而(在后面)程序正在重新启动其他应用程序,然后自行关闭(使用 QApplication::quit(); )这正是我想要的...但是弹出窗口中没有显示任何消息...我看不到图标,标题或文本...:SI不知道为什么:(
而当使用 ->exec(); 而不是显示,而是显示图标,标题和文本,但是当弹出窗口出现时,在用户关闭该弹出窗口之前什么都不做......:S
我知道 .exec() 会冻结所有内容,直到用户关闭弹出窗口而 show 没有...
那么......我怎样才能看到带有 show() 行为的文本?我不希望用户与该弹出窗口进行交互,我只需要在关闭所有窗口的同时显示弹出窗口,直到我的程序也关闭......
太感谢了!