したがって、私の意図したプログラムの流れは次のとおりです。
- インスタンスを作成し
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
スプラッシュ スクリーンを非表示にせずにレンダリングするにはどうすればよいですか?