0

我有以下源代码:

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;
 }
}

所以,我的问题是由于某种原因缺少对话框内容。在对话框中,我有一些文本和一个按钮。我只想在弹出对话框和进程运行时查看该内容。任何解决方案或想法如何实现这一目标?问候

4

2 回答 2

1

尝试使用QDialog的exec()方法而不是 show()这将达到模态窗口的目的。

这也可以解决您的问题。缺少 QPushButtons 和 QLabels(按钮和文本),这可能是您的布局或对话框窗口大小的问题(在放大后尝试)。

签入预览窗口(选项菜单 -> 表单编辑器 -> 预览)

于 2012-03-26T17:49:27.810 回答
0

我现在qApp->processEvents();在进程中使用了while循环。对话内容不会立即出现,但至少会在大约五到十秒后出现,这对我来说至少可以。问候和 thx 的支持。

于 2012-03-28T13:45:44.047 回答