2016-01-08 31 views
1

所以我打算程序流程是這樣的:如何在初始show()後將小部件添加到QSplashScreen?

  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渲染,而不先於上述必須隱藏啓動畫面?

+0

添加您的標籤,然後調用'mpSplashScreen->重繪();' – Evgeny

+0

@Evgeny我想這一點,這是行不通的。 – Matt

+0

然後嘗試調用'pSplashNotice-> show()' – Evgeny

回答

1

您應該添加以下調用

pSplashNotice->show();