因此,在reading之后,我感到里面所有的温暖和模糊,因为 Qt3D 重新出现在 v2.0 中,并且实际上即将成为 Qt5 的一部分,并且该部分已经可以作为技术进行测试预览。

我制定了一个简单的计划,我将让 Qt3D 在基于 C++/widgets 的现有应用程序的小部件内工作。但是,我能找到的唯一示例显示了如何使用 C++ 中的 Qt3D ,称为basicshapes-cpp,它显示了一些在单独的OpenGL/Qt3D准备好的window(扩展QWindow的类)中呈现的形状,而不是QWidget

现在,我了解了QWindowQWidget的作用以及它们如何整齐地结合在一起,但是我仍在努力了解如何从basicshapes-cpp程序中移植 Qt3D 代码,使其在QWidget中运行。需要遵守哪些基本步骤?

最佳答案

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
}

10-08 06:53