This repository has been archived on 2024-07-22. You can view files and clone it, but cannot push or open issues or pull requests.
Doric/doric-Qt/doric/demo/DoricDemoBridge.cpp

46 lines
1.2 KiB
C++
Raw Normal View History

2021-02-04 16:59:58 +08:00
#include <QDebug>
2021-02-09 17:42:11 +08:00
#include <QQuickView>
2021-02-04 16:59:58 +08:00
#include "DoricDemoBridge.h"
#include "DoricPanel.h"
#include "utils/DoricUtils.h"
DoricDemoBridge::DoricDemoBridge(QObject *parent) : QObject(parent) {}
void DoricDemoBridge::navigate(QVariant route) {
switch (route.toInt()) {
case 0:
2021-02-09 10:38:27 +08:00
QString name = "Snake.es5.js";
2021-02-04 16:59:58 +08:00
QString script = DoricUtils::readAssetFile("/doric/bundles", name);
2021-02-09 17:42:11 +08:00
QQuickView *view = new QQuickView();
{
const QUrl url(QStringLiteral("qrc:/doric/qml/view.qml"));
view->setSource(url);
view->setWidth(450);
view->setHeight(800);
}
2021-02-09 17:42:11 +08:00
DoricPanel *panel = new DoricPanel();
panel->setParentItem(view->rootObject());
2021-02-19 10:04:54 +08:00
panel->setWidth(450);
panel->setHeight(800);
2021-02-09 17:42:11 +08:00
panel->config(script, name, NULL);
QQmlEngine *engine = view->engine();
QQmlComponent component(engine);
const QUrl empty(QStringLiteral("qrc:/doric/qml/panel.qml"));
component.loadUrl(empty);
QQuickItem *childItem = qobject_cast<QQuickItem *>(component.create());
if (childItem == nullptr) {
qCritical() << component.errorString();
return;
}
childItem->setParentItem(view->rootObject());
view->show();
2021-02-04 16:59:58 +08:00
break;
}
}