我有以下源代码:
void Processmethod()
{
QDialog *ProcessMessage = new QDialog;
Ui::DialogProcessMessage Dialog;
Dialog.setupUi(ProcessMessage);
ProcessMessage->setModal(true);
ProcessMessage->setAttribute(Qt::WA_DeleteOnClose);
ProcessMessage->show();
processmethodONE();
processmethodTWO();
processmethodTHREE();
}
void processmethodONE()
{
QString ProcessCommand = "w8 " + blablubli";
Prozess.setWorkingDirectory(Path); //QProcess "Prozess" is globaly defined
Prozess.setStandardOutputFile(Path); //in my class
Prozess.start(ProcessCommand);
while(!Prozess.waitForFinished(2000))
{
qApp->processEvents();
std::cerr << "Process running " << std::endl;
}
QProcess::ExitStatus Status = Prozess.exitStatus();
if (Status == 0)
{
std::cout << "File created!" << std::endl;
}
}
因此,我的问题是对话框内容由于某种原因而丢失。在对话框中,我有一些文本和一个按钮。我只想在对话框弹出时以及进程运行时看到该内容。任何解决方案或想法如何实现?问候
最佳答案
尝试使用QDialog的exec()方法代替show(),这将达到模态窗口的目的。
这也可以解决您的问题。
QPushButtons和QLabels(按钮和文本)丢失了,这可能是布局或对话框窗口大小的问题(将其放大后尝试)。
在预览窗口中签入(OPTIONS MENU-> FORM EDITOR-> PREVIEW)。