LINUX.ORG.RU

как добавить qml виджет в QGraphicsScene ?

 ,


0

4

привет всем! я хочу добавить qml виджет версии Qquick 2.0 в QGraphicsScene, как это сделать ? в документации нашол как добавлять qml виджет версии Qquick 1.0

QGraphicsScene* scene = myExistingGraphicsScene();
 QDeclarativeEngine *engine = new QDeclarativeEngine;
 QDeclarativeComponent component(engine, QUrl::fromLocalFile("myqml.qml"));
 QGraphicsObject *object =
     qobject_cast<QGraphicsObject *>(component.create());
 scene->addItem(object);

вот код который я пытался добавить qml виджет в QGraphicsScene

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QQuickView* view1 = new QQuickView;
    view1->setSource(QUrl("qrc:/tank/simple_tank.qml"));


    QGraphicsScene scene;
    QWidget* wgt1 = QWidget::createWindowContainer(view1);
    QGraphicsWidget* wgt2 = scene.addWidget(wgt1);
    wgt2->resize(200, 200);

    QGraphicsView gview(&scene);
    gview.showMaximized();
    return a.exec();
}

в QGraphicsView выводит всего лишь пустой wgt1...поскажите как это исправить ?

нашол

Вот это правильно! Вот это понашому!

qml

This is exactly the problem.

nanoolinux ★★★★
()
Последнее исправление: nanoolinux (всего исправлений: 1)

как это сделать ?

Никак. QtQuick2 несовместим с QGraphicsScene. У них разные движки: QtQuick2 выводит все через GL ES, QGraphicsScene и QtQuick - нативно.

anonymous
()
Ответ на: комментарий от september_valentine

а есть что то типа QGraphicsScene для QtQuick2 ?

Зачем? Оно само и так уже как QGraphicsScene, только на js. Но можно и на C++ писать.

anonymous
()
Ответ на: комментарий от anonymous

я вот хочу использоваль много qml виджетов в одном qt виджет, чтобы описать логику столкновение объектом (qml виджет) на c++...какой я должен использовать qt виджет для этих целей? к примеру в QtQuick 1.0 мог бы использовать QGraphicsScene для описание логики столкновение объектов...

september_valentine
() автор топика
Ответ на: комментарий от september_valentine

В QtQuick другой принцип. QtQuick пытается полностью заменить старую модель интерфейса. Тут весь интерфейс программы - виджеты в сцене. Нет разделения на пользовательские виджеты, и стандартные элементы интерфейса.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.