Qt Quick優勢 1.在以往專案的開發程序中,對于PC端 UI的需求,我們使用QWidget完全能夠在主流桌面作業系統上實作跨平臺的開發作業;但是當遇到可觸碰互動的用戶界面,并要求在除了主流桌面作業系統,在移動作業系統上也要實作可觀的產品時,Qt Quick的適配性更好 2.同時使用C++與Qt標記性語言QML,如果你已經熟悉了這套開發流程,你會發現這種相較于原有QWidget的開發,這種開發對View模塊的隔離更加徹底,后端應用邏輯使用C++,QML開發用戶界面,并有MVD模式可以使用,大大提高開發效率 3.Qt Quick默認使用OpenGL ES,渲染效率很高,并且提供了屬性影片等基本影片物件以及用于組合多個影片物件的分組影片物件,在實作有關影片方面的需求,會更加方便 在原有QWiget專案中嵌入Qt Quick 如果當前的需求僅僅是要開發一個新的產品或者一個全新的模塊,建議直接選擇Qt Quick;但是在實際的業務場景里,我們往往會遇到,由于QWidget完成的專案業務積累足夠龐大,導致部分需求的開發使用Quick開發成本過高,所以下面我會根據實際的業務開發場景給出兩個技術方案供選擇, 方案1.業務不是很獨立,是原有業務的一部分,并且依賴QWidget的組件,以及QWidget的屬性,使用QQuickWidget 了解QQuickWidget,打開Qt幫助檔案通過索引搜索QQuickWidget,會看到非常詳細的官方解釋:The QQuickWidget class provides a widget for displaying a Qt Quick user interface,也就是說我們在能夠兼容所有的QWidget屬性以及與原有QWidget組件進行無差別銜接的同時,可以使用QML進行界面的撰寫,但是一定要打開更多來觀看更詳細的Detailed Description,因為這里會有幾個關鍵Note,告訴我們對原有QWidget業務進行無縫銜接的同時,使用QML要付出的代價, Note1:QQuickWidget的靈活,是以犧牲性能為代價的,與QQuickWindow和QQuickView不同,QQuickWidget涉及渲染到render到OOpenGL幀緩沖區物件,這個會帶來輕微的性能損失(這里可以埋個坑,后續一起討論QQuick的渲染機制) Note2:QQuickWidget將禁用所有平臺上的執行緒render loop,例如Animator類和vsync驅動的影片不能使用 Note3:避免在QQuickWidget上呼叫winId(),這個函式會觸發本機視窗的創建,導致性能降低,并可能出現渲染問題, 所以在使用QQuickWidget的靈活性的同時,要謹記以上三個Note 方案2.全新的專案或者非常獨立的業務,使用QQuickView,將會使用原汁原味的QML與C++進行混合開發 了解QQuickView,同樣打開Qt幫助檔案通過索引搜索QQuickWidget(無論了解什么,先去Qt幫助檔案查詢)The QQuickView class provides a window for displaying a Qt Quick user interface.點擊更多查看詳細資訊,QQuickView是QQuickWindow的派生類,當給定主源檔案的URL時候,會自動加載顯示QML場景, 總結:無論是QQuickWidget還是QQuickVIew,在編碼程序中的使用大同小異,通過代碼撰寫發現問題,解決問題, 參考資料 【1】QmlBook-In-Chinese 第二章 Get Start 【2】Qt Quick核心編程 第一章 Qt Quick 概覽 【3】Qt Quick核心編程 第四章 Qt Quick 入門 【4】Qt Assistant QQuickWidget,QQuickView
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/223023.html
標籤:其他
