Qt自己提供Qt Quick快速佈局, 以可視化方式在佈局中排列Qt Quick Item. 與anchors不一樣,Qt Quick Layouts能夠根據窗口大小調整其子項的大小以便佈局. 需注意如下事項:html
RowLayout { id: layout anchors.fill: parent spacing: 6 Rectangle { color: 'azure' Layout.fillWidth: true Layout.minimumWidth: 50 Layout.preferredWidth: 100 Layout.maximumWidth: 300 Layout.minimumHeight: 150 Text { anchors.centerIn: parent text: parent.width + 'x' + parent.height } } Rectangle { color: 'plum' Layout.fillWidth: true Layout.minimumWidth: 100 Layout.preferredWidth: 200 Layout.preferredHeight: 100 Text { anchors.centerIn: parent text: parent.width + 'x' + parent.height } } }
注意:Layout和anchors都是佔用更多內存和實例化時間的對象. 當簡單地綁定到x、y、width和height屬性就足夠時, 避免使用它們(尤爲是在列表和表格委託以及控件的樣式中)安全
QML中使用var既簡單又方便, 但也有幾個缺點需注意:網絡
property var name property var size property var optionsMenu
property string name property int size property MyMenu optionsMenu
在QML中, 能夠使用命令式JavaScript代碼執行諸如響應輸入事件, 經過網絡發送數據等任務. 命令式代碼在QML中佔有重要地位, 但重要的是要知道什麼時候不使用它編輯器
例如, 如下命令賦值:佈局
Rectangle { Component.onCompleted: color = "red" }
有如下缺點:字體
Rectangle { color: "red" }
隨着顯示分辨率的提升,可伸縮的應用程序UI變得愈來愈重要。實現這一點的方法之一是爲不一樣的屏幕分辨率維護UI的幾個副本,並根據可用的分辨率加載適當的副本。儘管這工做得很好,但它增長了維護開銷。ui
Qt爲這個問題提供了更好的解決方案,建議採用:spa
有了這些,應用程序的UI就能夠根據所提供的顯示分辨率進行縮放。翻譯
以上文章參考自Qt官方文檔: https://doc.qt.io/qt-5/qtquick-bestpractices.html
依我的理解, 簡要翻譯, 若有錯漏, 歡迎指正.code