我有以下源代码:

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)。

10-07 13:30