Qt 加載QML 文件的幾種方式

版權聲明:本文爲博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接和本聲明。
本文連接:https://blog.csdn.net/luoyayun361/article/details/77113516
前言
之因此寫這篇文章,是由於在項目中常常會碰到一個問題,qml 文件該如何加載到工程中,其實 Qt Quick APP 有兩種模式,另外,還有一種場景是,在 QWidget 界面上加載 QML 頁面,這三種狀況的使用方式都不太同樣,這裏總結一下。app

正文
QQmlApplicationEngined搭配 Window
示例:ui

#include <QGuiApplication>
#include <QQmlApplicationEngine>.net

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;blog

    return app.exec();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
這種方式是加載以 Window爲跟對象的 QML 文件,QML 擁有窗口的完整控制權,能夠直接設置標題、窗口尺寸等屬性。繼承

QQuickView 搭配 Item
示例:get

#include <QGuiApplication>
#include <QQuickView>
int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);it

    QQuickView *view = new QQuickView;
    view->setResizeMode(QQuickView::SizeRootObjectToView);
    view->setSource(QUrl(QStringLiteral("qrc:/main.qml")));
    view->show();io

    return app.exec();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
使用 QQuickView 顯示 QML 文件,對窗口的控制權(標題、窗口尺寸)是在 C++代碼中,QML 文件是以 Item (及 以Item爲根的組件)做爲根對象。file

QQuickWidget 加載 QML
示例:

 QQuickWidget *view = new QQuickWidget;  view->setSource(QUrl::fromLocalFile("myqmlfile.qml"));  view->show(); 1 2 3 QQuickWidget是繼承於 QWidget 控件,這種方式主要是用於在 QWidget 界面上加載 QML 界面。以前寫過一篇文章,主要講QQuickWidget加載 QML 的設置背景透明的問題,在這裏 ———————————————— 版權聲明:本文爲CSDN博主「luoyayun361」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。 原文連接:https://blog.csdn.net/luoyayun361/article/details/77113516

相關文章
相關標籤/搜索