Qt金融行業(yè)案例分享

Qt金融行業(yè)案例分享的圖1

Qt核心價值及優(yōu)勢

- 跨平臺支持,Windows、MacOS、Linux、國產(chǎn)麒麟操作系統(tǒng)、Android、iOS等
- 大數(shù)據(jù)實時顯示,性能優(yōu)異
- 豐富的圖形模塊,極致用戶體驗,用戶自定義UI布局
- 符合信創(chuàng)要求,助力國產(chǎn)大型軟件建設(shè)
- 開放源代碼
Qt:基于C++領(lǐng)先的跨平臺軟件開發(fā)框架
Qt金融行業(yè)案例分享的圖2
Qt高效的工具鏈
Qt金融行業(yè)案例分享的圖3

Qt金融行業(yè)案例分享

Tableau–商業(yè)分析與可視化工具
Qt金融行業(yè)案例分享的圖4
客戶需求
? 適用于所有操作系統(tǒng)的單一UI代碼庫
? 降低維護成本
? 縮短UI開發(fā)時間
? 獲得Qt企業(yè)級專業(yè)支持
Qt的解決方案和成果
? 客戶戰(zhàn)略性部署 Qt 跨平臺技術(shù)
? 承諾維護成本降低到僅支持一個目標平臺
? 具有響應(yīng)式和品牌化 UX 的 UI 框架,具有原生速度和性能
? 具有Qt商業(yè)許可、面向未來的開發(fā)策略
Webull案例介紹
Qt金融行業(yè)案例分享的圖5
- Model/View框架:中文文檔
- 性能優(yōu)化:QTableView,ResizeToContents,QAbstractItemModel,BeginInsert, QContiguousCache,fetchMore
- 功能升級:多級表頭,凍結(jié)列,匯總行,表頭拖動,hover Row,checkBox
模型/視圖 編程:中文文檔
- model-view-programming
- modelview
來自Qt中文社區(qū)翻譯的中文文檔,更容易理解Model/View框架

Qt金融行業(yè)案例分享的圖6

Qt金融行業(yè)案例分享的圖7
性能優(yōu)化
? 用QTableView代替QTableWidget,性能更佳
QTableWidget等是便利類,如果我們需要高性能的顯示,最好使用 QTableView、QListView 和 QTreeView。在這種情況下,您必須編寫一個模型類,其中包含要在相應(yīng)視圖類中顯示的數(shù)據(jù)。

Qt金融行業(yè)案例分享的圖8

Qt金融行業(yè)案例分享的圖9
?減少ResizeToContents的使用,提升性能
如果對QTableView的verticalHeader或horizontalHeader設(shè)置setSectionResizeMode(QHeaderView::ResizeToContents)的話,QTableView會遍歷整張表,造成卡頓。所以在表格數(shù)據(jù)量大的時候,建議將mode設(shè)置為 QHeaderView::Interactive 或 QHeaderView::Fixed。
? 用QAbstractTableModel 代替 QStandardItemModel,性能更佳
用 QStandardItemModel 寫的模型加載7列20萬行數(shù)據(jù)需要 784 ms;
用 QAbstractTableModel 寫的模型加載7列20萬行數(shù)據(jù)需要 25 ms。
? 對于beginInsertRows,如果你有大量數(shù)據(jù)需要插入 model,推薦將多次 insert 合并為一次
Qt金融行業(yè)案例分享的圖10
? QContiguousCache
在某些環(huán)境中內(nèi)存是有限的。使用 QContiguousCache,可以優(yōu)化內(nèi)存的占用,例如之前的例子,程序運行占用 33.8M 內(nèi)存,而用 QContiguousCache 優(yōu)化后,程序運行占用 8M 內(nèi)存。
? fetchMore
一般的 Model 都是針對固定的數(shù)據(jù)源,在數(shù)據(jù)源巨大的情況下,比如大型數(shù)據(jù)庫每個表可能有百萬級的數(shù)據(jù),最好僅在視圖需要這些項目時(即當(dāng)它們在視圖中可見時)將項目批量添加到模型中,fetchMore 和 canFetchMore 就是當(dāng)你需要增量填充模型時,必須重新實現(xiàn)的函數(shù)。
功能升級
? Hierarchical headers多級表頭
多級表頭,QTableView原生不支持,需要我們繼承QHeaderView,自己實現(xiàn),主要是通過QPainter實現(xiàn)QHeaderView的paintSection函數(shù)。

Qt金融行業(yè)案例分享的圖11

Qt金融行業(yè)案例分享的圖12
? Dragged columns表頭拖動

Qt金融行業(yè)案例分享的圖13

Qt金融行業(yè)案例分享的圖14
? Frozen columns凍結(jié)列
主要思路是繼承 QTableView 創(chuàng)建兩個 TableViewBase,然后將一個TableViewBase 疊在另一個 TableViewBase 上,但只顯示左邊幾列,代表凍結(jié)列,最后綁定一些信號槽,使?jié)L動條和鼠標事件有效。參考這個思路,我們可以寫出右凍結(jié)列,上凍結(jié)行,下凍結(jié)行,固定位置的匯總行。

Qt金融行業(yè)案例分享的圖15

Qt金融行業(yè)案例分享的圖16
? Hover Row
Qt金融行業(yè)案例分享的圖17

Qt金融行業(yè)案例分享的圖18

? Checkable
表格復(fù)選框,包括行選擇,列選擇,單元格選擇,全選。
Qt金融行業(yè)案例分享的圖19
關(guān)于Qt
Qt是一套業(yè)界領(lǐng)先的產(chǎn)品開發(fā)框架,可供前端設(shè)計師和開發(fā)人員適用于各種設(shè)備和操作系統(tǒng)的先進的UI/UX。
Qt被廣泛應(yīng)用于70多個行業(yè),并在全球范圍內(nèi)建立了完善的生態(tài)系統(tǒng)——每年下載量達數(shù)百萬次。
Qt擁有強大的合作伙伴生態(tài)——全球有超過100家軟件服務(wù)公司和SoC方案供應(yīng)商具備Qt開發(fā)能力。

Qt金融行業(yè)案例分享的圖20




深圳市優(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ù)”。

Qt金融行業(yè)案例分享的圖21

登錄后免費查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項目客服
  • 培訓(xùn)客服
  • 平臺客服

TOP