所以我想要的程序流程是这样的:

  • 创建show() QSplashScreen实例。
  • 初始化系统的其他部分,包括i18n模块
  • QLabel实例添加(翻译)版权声明(QSplashScreen)。

  • 问题在于,除非我对启动屏幕进行hide()编码,否则先调用QApplication::processEvents,添加QLabel,然后重新对启动屏幕进行show()编码-显然会导致巨大的闪烁-QLabel不会渲染。

    也就是说,如果我仅写以下内容,则看不到通知:
    QLabel* pSplashNotice = new QLabel( mpSplashScreen );
    pSplashNotice->setObjectName( "SplashNotice" );
    pSplashNotice->setWordWrap( true );
    pSplashNotice->setText( Localize(my_text) );
    pSplashNotice->resize( 1200, 50 );
    pSplashNotice->move( 100, 1000 );
    
    mpSplashScreen->raise();
    mpSplashScreen->show();
    

    我必须在以上之前
    mpSplashScreen->hide();
    QApplication::processEvents(QEventLoop::AllEvents);
    

    如何在不隐藏启动画面的情况下呈现pSplashNotice

    最佳答案

    您应该添加以下通话

    pSplashNotice->show();
    

    08-17 16:22