2

したがって、私の意図したプログラムの流れは次のとおりです。

  1. インスタンスを作成しshow() QSplashScreenます。
  2. i18n モジュールを含むシステムの他の部分を初期化する
  3. (翻訳された) 著作権表示 ( 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スプラッシュ スクリーンを非表示にせずにレンダリングするにはどうすればよいですか?

4

1 に答える 1

2

次の呼び出しを追加する必要があります

pSplashNotice->show();
于 2016-01-08T15:33:37.037 に答える