在Qt5中的QWidget中显示Qt3D内容

问题描述 投票:1回答:1

因此,在reading之后我觉得Qt3D已经在v2.0中重新出现并且很快成为Qt5的一部分并且其部分已经可用于作为技术预览进行测试。

我提出了一个简单的计划,我将Qt3D在我现有的基于C ++ / widgets的应用程序中的一个小部件中工作。然而,我能找到的唯一一个展示如何使用C ++的Qt3D的例子叫做basicshapes-cpp,它显示了一些单独的OpenGL / Qt3D渲染的window(扩展QWindow的类)而不是QWidget渲染的形状。

现在我读到了QWindowQWidget的作用以及它们如何整齐地挂在一起,但我仍然在努力理解如何从basicshapes-cpp程序中移植Qt3D代码以在QWidget中运行。需要观察的基本步骤是什么?

c++ qt5 qwidget qt3d qwindow
1个回答
1
投票

这个this post的提取显示了它的工作原理:

#include <QObject>
#include <QWidget>
#include <Qt3DExtras/Qt3DWindow>

class Qt3DWidget
      : public QWidget
{
    Q_OBJECT
    QWidget *container;

public:
    explicit Qt3DWidget(QWidget *parent = nullptr);

};

Qt3DWidget::Qt3DWidget(QWidget *parent)
   : QWidget(parent)
{
    auto view = new Qt3DExtras::Qt3DWindow();

    // put Qt3DWindow into a container in order to make it possible
    // to handle the view inside a widget
    container = createWindowContainer(view,this);

    // ... further stuff goes here
}
© www.soinside.com 2019 - 2024. All rights reserved.