有没有办法用字符串数据加载QQuickView?我知道只有void QQuickView::setSource(const QUrl & url)。我可以用字符串数据加载QQmlComponent,但现在如何将此组件分配给QQuickView?
QQuickView
void QQuickView::setSource(const QUrl & url)
QQmlComponent
wqsoz72f1#
在创建QQmlComponent时,可以传递QQuickView的引擎:
QQmlComponent component(view->engine(), QUrl("path/to/file.qml"));
9vw9lbht2#
我最近遇到了这个问题,并使用QQuickWindow::contentItem()解决了这个问题。
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(); }
2条答案
按热度按时间wqsoz72f1#
在创建
QQmlComponent
时,可以传递QQuickView
的引擎:9vw9lbht2#
我最近遇到了这个问题,并使用
QQuickWindow::contentItem()
解决了这个问题。