什麼是Qt Quick和Qml
- Qt Quick是從Qt4開始引入的一套新的UI開發框架,並在Qt5時得到較大完善,成爲首選的UI開發方式
- Qt Quick使用類似於CSS的方式進行界面開發
- Qt Quick最早設計出來是爲了開發手機應用界面的,性能比Qt Widget要差很多,但隨着Qt Quick的不斷髮展,現在在性能上的差距已經很小了,而且Qt Quick也不再僅侷限於手機應用,此外Qt Quick比Qt Widget支持更靈活更豐富的控件樣式,所以新項目界面開發,推薦優先使用Qt Quick
- Qml是一種文件格式,Qml文件用於編寫Qt Quick佈局代碼和事件代碼
創建Qt Quick項目
Qml和C++之間的關聯
我們可以看到,新建的簡單項目只有main.cpp和main.qml兩個文件
main.cpp非常簡單,很容易推測出,Qt是通過一個QQmlApplicationEngine的C++類來解析Qml文件,將其轉化爲UI界面
//main.cpp
int main(int argc, char *argv[]) {
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load("qrc:/main.qml");
return app.exec();
}
//main.qml
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
width: 640
height: 480
title: "Hello World"
}
Qml是HTML,CSS,Javascript的集合
可以看到,Qml文件和CSS文件很像,但是它不僅僅起到CSS的功能,同時還具備HTML和Javascript的功能
以Window元素爲例,它裏面還可以再嵌套其它元素,構成一個DOM樹,相當於HTML的功能
不但如此,還可以給Window元素添加一個方法,在裏面執行代碼,相當於Javascript的功能
Qml的樣式屬性大多和CSS同名,這給前端開發人員轉行開發提供了極大的方便