窗口在进程启动前没有弹出 ->尝试了 sleep() 方法,但"fails"

window does not popup before process start -> tried sleep() method, but "fails"

本文关键字:sleep 方法 fails gt 启动 进程 窗口      更新时间:2023-10-16

我试图在一些进程开始之前使用睡眠方法,只是为了给弹出窗口一个出现的时间:

    Processmethod()
{
    QDialog *ProcessMessage = new QDialog;      
    Ui::DialogProcessMessage Dialog;            
    Dialog.setupUi(ProcessMessage);             
    ProcessMessage->setModal(true);
    ProcessMessage->setAttribute(Qt::WA_DeleteOnClose); 
    ProcessMessage->show();
    sleep(500);
    PROCESSES START                     
}

我的问题是,弹出窗口只是在流程结束后出现,而不是在流程开始前出现。如果我停用了应该在窗口出现后开始的过程,弹出窗口工作正常。导致弹出窗口的过程是否失败?我的错在哪里?问候

添加

qApp->processEvents();

在睡眠呼叫之前。

我假设sleep是Windows函数?不要使用它。使用QTimer稍后启动进程:

ProcessMessage->show();
QTimer::singleShot(500, processObject, SLOT(start()));