在Qt5的QWidget中显示Qt3D内容



所以在读到Qt3Dv2.0中重新出现并且实际上很快就会成为Qt5的一部分并且其中的一部分已经可以作为技术预览进行测试后,我感到内心温暖和模糊。

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

现在我读到了QWindowQWidget以及它们如何整齐地挂在一起,但我仍在努力理解如何从basicshapes-cpp程序中移植 Qt3D 代码以在QWidget内运行。需要遵守哪些基本步骤?

如果有人感兴趣,我实现了一个实际的Qt3D小部件。代码可以在这里找到。

这篇文章的摘录显示了它是如何工作的:

#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
}

相关内容

  • 没有找到相关文章

最新更新