Qt 加载QML 文件的几种方式
生活随笔
收集整理的這篇文章主要介紹了
Qt 加载QML 文件的几种方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
之所以寫這篇文章,是因為在項目中經常會碰到一個問題,qml 文件該如何加載到工程中,其實 Qt Quick APP 有兩種模式,另外,還有一種場景是,在 QWidget 界面上加載 QML 頁面,這三種情況的使用方式都不太一樣,這里總結一下。
正文
QQmlApplicationEngined搭配 Window
示例:
#include <QGuiApplication> #include <QQmlApplicationEngine>int main(int argc, char *argv[]) {QGuiApplication app(argc, argv);QQmlApplicationEngine engine;engine.load(QUrl(QStringLiteral("qrc:/main.qml")));if (engine.rootObjects().isEmpty())return -1;return app.exec(); }這種方式是加載以 Window為跟對象的 QML 文件,QML 擁有窗口的完整控制權,可以直接設置標題、窗口尺寸等屬性。
QQuickView 搭配 Item
示例:
#include <QGuiApplication> #include <QQuickView> int main(int argc, char *argv[]) {QGuiApplication app(argc, argv);QQuickView *view = new QQuickView;view->setResizeMode(QQuickView::SizeRootObjectToView);view->setSource(QUrl(QStringLiteral("qrc:/main.qml")));view->show();return app.exec(); }使用 QQuickView 顯示 QML 文件,對窗口的控制權(標題、窗口尺寸)是在 C++代碼中,QML 文件是以 Item (及 以Item為根的組件)作為根對象。
QQuickWidget 加載 QML
示例:
QQuickWidget *view = new QQuickWidget;view->setSource(QUrl::fromLocalFile("myqmlfile.qml"));view->show();QQuickWidget是繼承于 QWidget 控件,這種方式主要是用于在 QWidget 界面上加載 QML 界面。之前寫過一篇文章,主要講QQuickWidget加載 QML 的設置背景透明的問題,在這里
總結
以上是生活随笔為你收集整理的Qt 加载QML 文件的几种方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android判断网线连接
- 下一篇: QML 发光呼吸动画字体