Qt 中的小部件可见性更改后小部件何时更新?

When will widgets update after widget visibility change in Qt?

我想一个一个地更改两个小部件的可见性。就我而言,我需要做一些处理然后休眠 1s 并更改 WidgetA 的可见性。并睡眠 1 秒更改 WidgetB 的可见性。这是我的代码。

...// do process D
 Sleep(1000);
 WidgetA->setVisible(true);         
 Sleep(1000);
 WidgetB->setVisible(true);

但是结果不是我想要的。 WidgetA 和 WidgetB 的可见性在进程 D 完成后超过 2 秒后同时发生变化。

  1. 为什么WidgetA和WidgetB的可见性同时改变了?当 WidgetA->setVisible(true); 被执行时,它们不是实时变化的吗?小部件什么时候更新?

  2. 为什么超过2秒?

void MainWindow::Initialize()
{
    Sleep(1000);
    WidgetA->installEventFilter( this );
    WidgetA->setVisible( true );
}

bool MainWindow::eventFilter( QObject *object, QEvent *event )
{
    if( object == WidgetA )
    {
        if( event->type() == QEvent::Show )
        {
            Sleep(1000);
            WidgetB->setVisible( true );
        }
    }
    return QMainWindow::eventFilter( object, event );
}