2016-04-23 30 views

回答

2

我的應用程序在性能方面要求很高,我是 思維嵌入部件到QML有更容易和更快 控制的用戶界面,但我真的很擔心性能,將值得 的試或者這只是不好的做法?

由於Qt 5.1我們可以很容易地將QML視圖嵌入到Qt Widget容器中。有一段我偶然發現的博客:Combining Qt Widgets and QML with QWidget::createWindowContainer()

至於性能,不確定您的應用程序需要哪種性能?整體QML呈現通過OpenGL或非常快速的畫面。另一方面,使用QML時,您經常需要處理JavaScript,這當然不能與C++相媲美。儘管如此,Qt引入了Qt Quick Compiler

至於基於QWidget的-UI與QML:討論可以被認爲是觀點的表達等一些考慮點,那麼:

  • 開發和維護的一種UI,無論是小部件或基於QML是更輕鬆。
  • 混合用戶界面是可能的,但它是有道理的,瞭解你可以從中獲得什麼。
  • 大多數桌面應用程序只完全滿足小部件。
  • 當應用程序應該移植到移動平臺時,QML更有意義。
  • 當應用程序應該依靠'touch'時,QML比widgets更有利。

的QT部件是很長的時間在UI開發方面的消費,我 CSS表有3000行代碼已經,這是很長的時間耗費 做用戶界面的變化。

嗯......非常嚴重樣式的基於窗口小部件的應用程序?我只能確定這兩個概念:小部件和QML是非常不同的,但小部件樣式表和QML都是聲明性語言,雖然不同。我也確信,任何認真的應用程序都需要更多的C++和QML,因此我們需要花時間用CML橋接C++代碼。

QML應用程序的分佈也可能比純粹的基於窗口小部件更復雜:例如,您需要定製Qt構建以支持某些虛擬機和平臺模擬的OpenGL:這是一個有趣的主題。另外,你使用的Qt Quick小部件應該把它們放到與應用程序分發的資源中,或者你需要Qt Quick Compiler。如果您使用它,請確保所有QML代碼都是由它編譯的,並且應用程序的任何部分仍然使用'腳本'QML,這是從資源中缺失的。我在我們的應用程序中使用了Qt 5.5 Quick Compiler,並且發現它不僅存在一些錯誤,而且還需要將某些Qt Quick文件從框架中拖放到應用程序安裝包中。這與標準的動態鏈接和windeployqt工具不一樣。但是一個嚴肅的應用程序通常需要靜態鏈接到它的所有依賴項,然後我們不能使用windeployqt工具。

整體而言,Qt正在從小部件轉移到QML,但我們可以獲得什麼以及我們需要多少QML纔是真正的應用程序,這是一個漫長的討論。

相關問題