目标
为实现从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类型的实现。