欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

QT開發(fā)應用程序的歡迎界面實例

 更新時間:2017年08月21日 09:08:29   投稿:jingxian  
下面小編就為大家?guī)硪黄猀T開發(fā)應用程序的歡迎界面實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

主界面啟動太慢,通常要10秒以上,所以想加個歡迎界面,等程序加載好再顯示主界面。

主界面(類名為MainWindow)啟動慢的原因是構造函數(shù)需要執(zhí)行大量初始化的工作。

創(chuàng)建了Welcome類作為歡迎界面,開始的思路是,在main函數(shù)中先創(chuàng)建Welcome類的對象,然后show(),對于主界面,在構造函數(shù)將要返回時調(diào)用自己的show()方法,并且調(diào)用welcome的close()。但是歡迎界面總是只出現(xiàn)邊框,不顯示內(nèi)容,并且窗體的背景也是虛的。

原因分析:

在QT中,窗體的各種事件的分發(fā)是由QApplication來完成的,在main函數(shù)中,最后一行代碼是調(diào)用QApplication對象的exec()方法,這個方法執(zhí)行后,整個應用程序的事件才能被分發(fā)處理,但是在main函數(shù)中,創(chuàng)建MainWindow實例的時候,總是會等待MainWindow的構造函數(shù)執(zhí)行完,才會執(zhí)行到QApplication對象的exec()方法,所以在此之前歡迎界面的事件是不被響應的,paintEvent()函數(shù)不會得到執(zhí)行,所以也就不會正常顯示出來了,當MainWindow的構造函數(shù)執(zhí)行完成,QApplication對象能夠處理事件分發(fā)時,也不需要歡迎界面顯示了,可以直接顯示主界面了。

只能想辦法讓MainWindow的構造函數(shù)立即返回,初始化的工作留在后續(xù)處理。但是誰來調(diào)用初始化的工作代碼呢,welcome類的構造函數(shù)也不能去調(diào)用它,否則一樣會很慢才能顯示出來。我的辦法是使用QTimer定時很短一段時間,自動觸發(fā)初始化代碼的執(zhí)行,這樣不占用構造函數(shù)的執(zhí)行時間,讓QApplication能夠盡快工作起來。

一下是簡略代碼:

main.cpp

int main(int argc, char *argv[])
{
  QApplication app(argc, argv);
  //...其他代碼
  WelcomeWindow *welcome=new WelcomeWindow();
  MainWindow w(welcome);
 
  return app.exec();
}

MainWindow的構造函數(shù)

this->welcome=welcome;
if(welcome != 0){
  welcome->show();
  timerInit=new QTimer();
  timerInit->setInterval(100);
  timerInit->setSingleShot(true);//設置Timer只觸發(fā)一次
  timerInit->start();
  connect(timerInit, SIGNAL(timeout()), SLOT(init()));
}else{
  init();
}

MainWindow的init()函數(shù)(將原構造函數(shù)的初始化代碼放到init()里了)

if(welcome!=0){
  welcome->close();
  delete welcome;
  this->show();
}

以上這篇QT開發(fā)應用程序的歡迎界面實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • C語言中指針和數(shù)組試題詳解分析

    C語言中指針和數(shù)組試題詳解分析

    變量存放在內(nèi)存中,內(nèi)存其實就是一組有序字節(jié)組成的數(shù)組,每個字節(jié)有唯一的內(nèi)存地址。CPU 通過內(nèi)存尋址對存儲在內(nèi)存中的某個指定數(shù)據(jù)對象的地址進行定位。數(shù)據(jù)對象是指存儲在內(nèi)存中的一個指定數(shù)據(jù)類型的數(shù)值或字符串,它們都有一個自己的地址,指針是保存這個地址的變量
    2021-10-10
  • C++利用eigen庫實現(xiàn)求歐拉角

    C++利用eigen庫實現(xiàn)求歐拉角

    這篇文章主要為大家詳細介紹了C++如何利用eigen庫自帶的matrix.eulerAngles()函數(shù)實現(xiàn)求歐拉角,文中的示例代碼講解詳細,有需要的小伙伴可以參考下
    2023-11-11
  • 淺談C#互操作的內(nèi)存溢出問題

    淺談C#互操作的內(nèi)存溢出問題

    以前了解過c++的棧內(nèi)存溢出,沒想到在c#里被我遇到了,問題看似不大,如何被恰好相鄰的四個字節(jié)是返回地址,說不定危害不小?。】磥韈#的互操作還是得小心為好
    2013-10-10
  • C語言動態(tài)內(nèi)存分配的詳解

    C語言動態(tài)內(nèi)存分配的詳解

    這篇文章主要介紹了C語言動態(tài)內(nèi)存分配的詳解的相關資料,這里提供了實現(xiàn)方法整理和出現(xiàn)錯誤的解決辦法,需要的朋友可以參考下
    2017-07-07
  • C語言示例講解switch分支語句的用法

    C語言示例講解switch分支語句的用法

    這篇文章主要為大家介紹了switch語句,switch語句是我們常見會用到的結構,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 詳解C++虛函數(shù)表存儲位置

    詳解C++虛函數(shù)表存儲位置

    相信大家知道虛表指針和虛函數(shù)存儲的位置,但對于虛函數(shù)表的存儲位置一時無法確定。本文就來和大家詳細聊聊相關內(nèi)容,希望對大家有所幫助
    2023-04-04
  • 淺析c/c++中函數(shù)的參數(shù)傳遞

    淺析c/c++中函數(shù)的參數(shù)傳遞

    c/c++中,函數(shù)可以傳遞的參數(shù)有三種形式,值、引用和指針。以下分別對這三種形式進行了介紹,需要的朋友可以過來參考下
    2013-07-07
  • C語言中字符串和數(shù)字的相互轉換實現(xiàn)代碼

    C語言中字符串和數(shù)字的相互轉換實現(xiàn)代碼

    以下是對C語言中字符串和數(shù)字的相互轉換實現(xiàn)代碼進行了分析介紹,需要的朋友可以參考下
    2013-07-07
  • 利用C++實現(xiàn)?然連接操作算法

    利用C++實現(xiàn)?然連接操作算法

    這篇文章主要介紹了利用C++實現(xiàn)?然連接操作算法,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • C語言算法積累加tag的循環(huán)隊列

    C語言算法積累加tag的循環(huán)隊列

    這篇文章主要為大家介紹了C語言算法積累加tag的循環(huán)隊列的解題思路,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06

最新評論