c++ 从QByteArray加载QQuickView

pwuypxnk  于 2023-07-01  发布在  其他
关注(0)|答案(2)|浏览(115)

有没有办法用字符串数据加载QQuickView?我知道只有void QQuickView::setSource(const QUrl & url)
我可以用字符串数据加载QQmlComponent,但现在如何将此组件分配给QQuickView

wqsoz72f

wqsoz72f1#

在创建QQmlComponent时,可以传递QQuickView的引擎:

QQmlComponent component(view->engine(), QUrl("path/to/file.qml"));
9vw9lbht

9vw9lbht2#

我最近遇到了这个问题,并使用QQuickWindow::contentItem()解决了这个问题。

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

    QQuickView view;
    QQmlComponent com(view.engine());  
    com.setData(QByteArrayLiteral("... QML source ..."), QUrl())

    QQuickItem *root = qobject_cast<QQuickItem *>(com.create());
    root->setParentItem(view.contentItem());
    view.show();

    return app.exec();
}

相关问题