Содержимое диалогов отсутствует, когда запущен процесс с циклом while - PullRequest
0 голосов
/ 26 марта 2012

У меня есть следующий исходный код:

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

Итак, моя проблема в том, что содержимое диалогов по какой-то причине отсутствует. В диалоге у меня есть текст и одна кнопка. Я просто хочу увидеть этот контент, когда всплывающее диалоговое окно и пока запущены процессы. Есть решения или идеи, как этого добиться? привет

Ответы [ 2 ]

1 голос
/ 26 марта 2012

Попробуйте использовать exec () метод QDialog вместо show () , это будет служить модальному окну.

Это тоже может решить вашу проблему. QPushButtons и QLabels (кнопки и текст) отсутствуют, это может быть проблемой вашего макета или размера диалогового окна (попробуйте после его увеличения).

Проверка в окне предварительного просмотра (МЕНЮ ПАРАМЕТРОВ -> РЕДАКТОР ФОРМЫ -> ПРОСМОТР) .

0 голосов
/ 28 марта 2012

Я использовал qApp->processEvents(); в процессах while.Содержимое диалогов не появляется мгновенно, но, по крайней мере, через пять - десять секунд, что по крайней мере хорошо для меня.привет и спасибо за поддержку.

...