干貨 | Qt中實現(xiàn)邊加載數(shù)據(jù)邊顯示頁面
瀏覽:2289
文章作者:稀土掘金“中國好公民st”
文章鏈接:
https://juejin.cn/post/7029852623268216845
第一步:定義顯示定時器
//.hQTimer *m_Timer;//.cpp使用m_Timer = new QTimer(this);connect(m_Timer, &QTimer::timeout, this, &QMyWidget::OnTimerLoadData);
void QMyWidget::show(){QWidget::show();m_timer->start(0);}
void QMyWidget::show(){QWidget::show();//頁面啟動后,直接顯示加載gif圖片gPageManager::instance()->GetDownloadDlg()->SetShowMode(1);gPageManager::instance()->GetDownloadDlg()->SetTips("正在加載案例數(shù)據(jù),請稍后...");gPageManager::instance()->GetDownloadDlg()->show();if (m_timer->isActive() == false){m_timer->start(0);}}
void QMyWidget::OnTimerLoadData(){//因為只是在打開頁面時加載數(shù)據(jù),所以,定時器只需要進行一次即可。m_Timer->stop();//啟動線程,加載數(shù)據(jù),具體代碼這里不具體說明。//數(shù)據(jù)加載完之后,隱藏GIF動態(tài)加載頁面gPageManager::instance()->GetDownloadDlg()->hide();}
第二步:線程加載數(shù)據(jù)
#include <QtConcurrent/QtConcurrentRun>
QFuture futureResult = QtConcurrent::run(this, &QMyWidget::LoadWidgetData);while (!futureResult.isFinished()){QApplication::processEvents(QEventLoop::AllEvents);}
bool QMyWidget::LoadWidgetData(){//具體的數(shù)據(jù)加載操作return true;}
第三步:實時呈現(xiàn)加載進度
bool QMyWidget::LoadWidgetData(){//1:加載數(shù)據(jù)內(nèi)容1,具體實現(xiàn)不說明//發(fā)送數(shù)據(jù)內(nèi)容1對應(yīng)的頁面處理操作emit Msg_SendSelfDataProcessing1();//...數(shù)據(jù)加載內(nèi)容自由發(fā)揮,類似于 上面兩步驟內(nèi)容return true;}
深圳市優(yōu)飛迪科技有限公司成立于2010年,是一家專注于產(chǎn)品開發(fā)平臺解決方案與物聯(lián)網(wǎng)技術(shù)開發(fā)的國家級高新技術(shù)企業(yè)。
十多年來,優(yōu)飛迪科技在數(shù)字孿生、工業(yè)軟件尤其仿真技術(shù)、物聯(lián)網(wǎng)技術(shù)開發(fā)等領(lǐng)域積累了豐富的經(jīng)驗,并在這些領(lǐng)域擁有數(shù)十項獨立自主的知識產(chǎn)權(quán)。同時,優(yōu)飛迪科技也與國際和國內(nèi)的主要頭部工業(yè)軟件廠商建立了戰(zhàn)略合作關(guān)系,能夠為客戶提供完整的產(chǎn)品開發(fā)平臺解決方案。
優(yōu)飛迪科技技術(shù)團隊實力雄厚,主要成員均來自于國內(nèi)外頂尖學(xué)府、并在相關(guān)領(lǐng)域有豐富的工作經(jīng)驗,能為客戶提供“全心U+端到端服務(wù)”。
技術(shù)鄰APP
工程師必備
工程師必備
- 項目客服
- 培訓(xùn)客服
- 平臺客服
TOP




















