QML學習 1、前言 2、QML 3、QML和QWidget的區別 3、QtQuick下的Windows應用 4、總結
1、前言
記錄一下QML學習的過程,方便自己日后回顧,也可以給有需要的人提供幫助。
2、QML
QML是 Qt 框架中的一種聲明式編程語言,專門用于快速設計和開發用戶界面(UI)
3、QML和QWidget的區別
特性 QML(Qt Quick) QWidget 實現語言 QML/JavaScript C++ 動態界面 流暢動畫、觸摸交互 動畫性能差,適合靜態布局 適用場景 現代界面、動畫 傳統桌面應用 跨平臺 支持移動端(Android/iOS)、嵌入式 主要支持桌面端(Windows/macOS/Linux) 復雜性 需與C++后端結合 直接通過C++實現 開發效率 快速迭代,適合UI密集型項目 編碼量大,適合邏輯密集型項目
3、QtQuick下的Windows應用
主要講QML在Windws下如何設置寬度,高度,坐標點,標題,信號與槽,鍵盤事件
import QtQuick 2.12
import QtQuick. Window 2.12
import QtQuick. Controls 2.5
Window { visible: true width: 640 height: 480 title: qsTr ( "My QML" ) signal mysignal ( ) property int myValue: 0 minimumWidth: 300 minimumHeight: 400 maximumWidth: 700 maximumHeight: 600 opacity: 0.8 onMysignal: { } onWidthChanged: { console. log ( "width" , width) } onMyValueChanged: { } Button { id: btn1focus: true objectName: "btn1" width: 50 height: 50 background: Rectangle{ border. color: btn1. focus ? "blue" : "back" } onClicked: { console. log ( "btn1 clicked" ) ; } Keys. onRightPressed: { btn2. focus = true ; } } Button { id: btn2x: 100 objectName: "btn2" width: 50 height: 50 background: Rectangle{ border. color: btn2. focus ? "blue" : "back" } onClicked: { console. log ( "btn2 clicked" ) ; } Keys. onLeftPressed: { btn1. focus = true ; } } onActiveFocusItemChanged: { console. log ( "active focus item changed" , activeFocusItem, "object name" , activeFocusItem. objectName) }
}
4、總結
以上就是QML的一些基礎知識了,后續還會繼續更新,瀏覽過程中,如若發現錯誤,歡迎大家指正,有問題的歡迎評論區留言或者私信。最后,如果大家覺得有所幫助,可以點一下贊,謝謝大家!祝大家天天開心,順遂無虞!