Auf dieser Seite

Initialisierung der QML Runtime

QML-Dokumente werden von der QML Runtime geladen und ausgeführt. Die QML Runtime bietet zudem Zugriff auf andere Qt-Module oder QML-Module von Drittanbietern sowie auf entsprechende Typen.

Darüber hinaus stellt das Qt-Framework das Tool „ qml “ zur Verfügung, das „ .qml “-Dateien lädt. Dieses Tool ist nützlich für die Entwicklung und das Testen von QML-Code, ohne dass eine C++-Anwendung geschrieben werden muss, um die QML Runtime zu laden.

Um eine Anwendung auszuführen, die QML verwendet, muss Ihre Anwendung die QML Runtime aufrufen. So rufen Sie die QML Runtime auf:

  • Erstellen Sie eine Qt-C++-Anwendung.

    Die Anwendung sollte die „ QQmlEngine “ auf eine der folgenden Weisen laden:

  • Erstellen Sie eine Qt Bridge-Anwendung.

    Weitere Informationen finden Sie in der Qt Bridge-Dokumentation:

  • Verwenden Sie das Tool „ qml “, um QML-Dateien direkt zu laden und auszuführen.

    Dieses Tool eignet sich zum Entwickeln und Testen von QML-Code, ohne dass eine Anwendung zum Laden der QML Runtime geschrieben werden muss. Weitere Informationen finden Sie unter „Prototyping mit dem Tool ‚ QML Runtime ‘“.

Initialisierung von „ QML Runtime “ in C++-Anwendungen

Initialisierung mit QQuickView

QQuickView ist eine auf dem „ QWindow “ basierende Klasse, die QML-Dateien laden kann. Wenn es beispielsweise eine QML-Datei namens „ application.qml “ gibt, sieht dies wie folgt aus:

import QtQuick

Rectangle { width: 100; height: 100; color: "red" }

Sie kann wie folgt in die ` main.cpp `-Datei einer Qt-Anwendung geladen werden:

#include <QGuiApplication>
#include <QQuickView>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQuickView view;
    view.setSource(QUrl::fromLocalFile("application.qml"));
    view.show();

    return app.exec();
}

Dadurch wird eine auf „ QWindow “ basierende Ansicht erstellt, die den Inhalt von „ application.qml “ anzeigt.

Build-Dateien

Verwenden Sie den Befehl „ find_package() “, um die benötigte Modulkomponente im Paket „ Qt6 “ zu finden:

find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)

Weitere Informationen finden Sie in der Übersicht „Erstellen mit CMake “.

Um das Modul für die Erstellung mit qmake zu konfigurieren, fügen Sie das Modul als Wert der Variablen „ QT “ in der .pro-Datei des Projekts hinzu:

QT += quick

Weitere Informationen finden Sie unter „Projektdateien erstellen“.

Direktes Erstellen einer QQmlEngine

Wenn „ application.qml “ keine grafischen Komponenten enthält oder wenn „ QQuickView “ aus anderen Gründen vermieden werden soll, kann die „ QQmlEngine “ stattdessen direkt instanziiert werden. In diesem Fall wird „ application.qml “ als „ QQmlComponent “-Instanz geladen, anstatt in eine Ansicht eingefügt zu werden:

#include <QGuiApplication>
#include <QQmlEngine>
#include <QQmlContext>
#include <QQmlComponent>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQmlEngine engine;
    QQmlContext *objectContext = new QQmlContext(engine.rootContext());

    QQmlComponent component(&engine, "application.qml");
    QObject *object = component.create(objectContext);

    // ... delete object and objectContext when necessary

    return app.exec();
}

Wenn Sie keine grafischen Elemente aus Qt Quick verwenden, können Sie QGuiApplication im obigen Code durch QCoreApplication ersetzen. Auf diese Weise können Sie QML als Sprache nutzen, ohne von dem Qt GUI Moduls.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.