QWidget 调用 QML 插件中的对象

目标

为实现从QML字符串中创建QML对象,并显示在基于QWidget项目工程中,且这个QML对象所属类型来自QML插件

代码

以下这段代码是采用C++方式从QML字符串中创建QML对象并显示在QTabWidget的某一页:

    QTabWidget *tabw = ui->tabMessageListWidget;
    ....
    QQuickWidget *qwWaveAnal=new QQuickWidget();
    qwWaveAnal->setObjectName(QStringLiteral("qwWaveAnal"));
    qwWaveAnal->setResizeMode(QQuickWidget::SizeRootObjectToView );
    QQmlComponent *component = new QQmlComponent(qwWaveAnal->engine());
    component->setData("import QtQuick 2.4\n import XjQmlUi 1.0 \n WaveAnalDemo{}", QUrl());
    qwWaveAnal->setContent(QUrl(), component, component->create());

    tabw->addTab(qwWaveAnal, QStringLiteral("波形分析"));

注意: import XjQmlUi 1.0 这句话,该模块为QML插件,并包含了WaveAnalDemo这个QML类型的实现。

你可能感兴趣的:(QWidget 调用 QML 插件中的对象)