qt3d窗口内的Qt小部件
Posted
技术标签:
【中文标题】qt3d窗口内的Qt小部件【英文标题】:Qt Widget inside qt3d window 【发布时间】:2018-12-22 21:35:52 【问题描述】:如何将标签或按钮放入 qt3d 窗口?是否可以?还没有看到任何示例...我试图简单地将 qt3d 放在 windowcontainer 中,为其分配布局和 layout->addWiget() 但它不起作用。
【问题讨论】:
你看过planets example。它不是直接的QWidgets
,但可以让你开始。
【参考方案1】:
我知道这是一个非常古老的问题,但如果其他人偶然发现这个问题,我想给出更详细的答案。
我实现了一个 Qt3D 小部件,您可以找到 here。不幸的是,它依赖于一种从 QAbstractTexture
获取纹理 id 的方法,该方法仅适用于 Qt >= 5.13,因此这是您必须使用的最低版本。
createWindowContainer
将相应的窗口绘制在其他所有窗口之上。因此,您将永远无法在容器内绘制任何按钮。
您当然可以在您的容器化 3D 窗口周围拥有按钮和其他所有东西。但这并不是你想要的。
您可以使用Dear ImGui - 它是Qt3D integration。 ImGui 用于在 3D 环境中使用顶点绘制 GUI 元素。
当然,您始终可以使用 QML - 您应该可以在 3D 视图中放置按钮。
【讨论】:
【参考方案2】:您在 QT3d 文档中的第一个 C++ 示例中同时拥有标签和(单选)按钮,请参阅 Qt 3D: Basic Shapes C++ Example
QExtrudedTextGeometry 似乎是 3D 文本的类
【讨论】:
我想在 3d 视图中添加标签,而不是在外部。 @KamilSłotwiński 看看 QExtrudedTextGeometry,似乎是 3D 文本类以上是关于qt3d窗口内的Qt小部件的主要内容,如果未能解决你的问题,请参考以下文章