QQuickView作为QGraphicsScene中的项目

问题描述

我想将qquickview集成到QGraphicsView中,但是我只有一个灰色矩形。

我知道将qml集成到qgraphicsview中是一个可怕的选择,但是我的团队已经在这个应用程序上工作了3年,并且无法更改主要的QGraphicsView。我只想知道现在是否有办法包含一些QML。

也许对此有解决方案?也许我只需要忘记它。也许你知道。谢谢!

代码示例

main.cpp

#include <QApplication>
#include <QMainWindow>
#include <QtQuick/qquickview>
#include <QGraphicsView>
#include <QGraphicsScene>

// Main
int main(int argc,char *argv[])
{
    QApplication a(argc,argv);

    QGraphicsScene * scene = new QGraphicsScene;
    QGraphicsView * view = new QGraphicsView(scene);

    qquickview * quickView = new qquickview;
    quickView->setSource(QUrl::fromLocalFile("test.qml")); // displays a text
    QWidget * container = QWidget::createWindowContainer(quickView);
    container->setFixedSize(500,100);

    scene->addWidget(container);
    scene->addEllipse(50,50,100,100); // Just to kNow my scene is correctly drawn

    view->show();

    return a.exec();
}

test.qml

import QtQuick 2.15

Rectangle {

    width: 500
    height: 100
    
    Text {
        text: "This is a text in a QML view"
        anchors.left: parent.left
        anchors.top: parent.top
    }
    
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)