Qt3d 使用 QSceneLoader 和 qt 5.8

2023-12-01

我尝试使用 QSceneLoader 加载在外部编辑器中创建的 3D 场景,但没有成功。我总是在加载阶段得到断言。我使用 OBJ 模型 qt 的示例,它很容易加载为 QMesh。

测试仓库https://bitbucket.org/ibnz/test_qt3d

#include <QApplication>
#include <QEntity>
#include <QSceneLoader>
#include <Qt3DWindow>

int main(int argc, char **argv)
{
    QApplication app(argc, argv);
    Qt3DExtras::Qt3DWindow *view = new Qt3DExtras::Qt3DWindow();

    Qt3DCore::QEntity *rootEntity = new Qt3DCore::QEntity();

    Qt3DRender::QSceneLoader *loader = new Qt3DRender::QSceneLoader(rootEntity);
    QObject::connect(loader, &Qt3DRender::QSceneLoader::statusChanged,
                     &app, [](Qt3DRender::QSceneLoader::Status s){qDebug() << s;});
    QUrl url = QUrl::fromLocalFile(":/obj/square-pot.obj");
    loader->setSource(url);

    view->setRootEntity(rootEntity);
    view->show();

    return app.exec();
}

Qt3DRender::QSceneLoader::状态(正在加载) 断言:文件 io\qsceneloader.cpp 第 215 行中的“entities.size() == 1” 调试错误!

程序:C:\Qt\Qt5.8.0\5.8\msvc2015\bin\Qt5Cored.dll 模块:5.8.0 文件:global\qglobal.cpp 专线:3070

断言:文件 io\qsceneloader.cpp 第 215 行中的“entities.size() == 1”

(按“重试”来调试应用程序) Qt3DRender::QSceneLoader::状态(就绪)


I use http://code.qt.io/cgit/qt/qt3d.git/tree/tests/manual/assimp-cpp加载我自己的 Collada 机器人模型,该模型可以正常工作。重要的几行是:

// Root entity
Qt3DCore::QEntity *sceneRoot = new Qt3DCore::QEntity();
...
// Scene loader
Qt3DCore::QEntity *sceneLoaderEntity = new Qt3DCore::QEntity(sceneRoot);
Qt3DRender::QSceneLoader *sceneLoader = new Qt3DRender::QSceneLoader(sceneLoaderEntity);
SceneWalker sceneWalker(sceneLoader);
QObject::connect(sceneLoader, &Qt3DRender::QSceneLoader::statusChanged, &sceneWalker, &SceneWalker::onStatusChanged);
sceneLoaderEntity->addComponent(sceneLoader);

因此,请尝试使用您的 obj 文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt3d 使用 QSceneLoader 和 qt 5.8 的相关文章

  • 将 C++ 代码(本机客户端)移植到浏览器(Web 应用程序)

    我有一个使用 Qt creator SDK 编写的 C 模块 我想将此代码移植到任何网页上运行 而不会对最终用户损害源代码 用户应该能够在任何浏览器 Chrome Firefox Safari Explorer 上看到此模块的输出 而无需安
  • Qt 创建者 4.8.4。 Windows 7 - 64 位安装

    我在 QT 方面遇到了一些困难 我需要在学校使用它来完成一些 GUI 应用程序 我最近完成了以下步骤 1 mingw get inst 20120426 exefrom 来源锻造 http sourceforge net projects
  • QMessageBox::about 可以根据标题长度调整大小吗?

    我想创建一个简单的 关于 对话框 但注意到QMessageBox about不会根据标题的长度调整其大小 由于字体较大 标题通常会更长 至少在我的桌面环境中 仅根据内容调整其大小 有没有办法确保对话框足够大以显示所有标题 我当然可以向 ab
  • 无法将 [未定义] 分配给 QColor

    我正在使用 Qt 5 11 构建 运行代码 代码中有QML风格如下 Button style delegate Component id enabledButtonStyle ButtonStyle padding top 0 paddin
  • C++ QT libXL 错误:“启动期间程序退出,代码为 0xc0000135”

    我正在尝试编写一个使用 libXL 的 QT 应用程序 但是当我尝试编译时 我收到一个弹出框 显示 During Startup program exited with code 0xc0000135 我已经准确地找出了哪一行导致了问题 它
  • qt 如何知道按钮被点击?

    我正在尝试编写一个程序 用声音进行一些操作 我的问题是我有 3 个播放按钮和 3 个标签 我希望无论我单击 播放 按钮 都应该播放按钮附近标签中名称的声音 我有一个没有任何参数的播放插槽 那么 如何分别连接到每个播放按钮和每个标签呢 实际上
  • 在 QtCreator 中调试时如何查看 qDebug 消息

    我正在从 Eclipse CDT 带有 Qt 集成插件 过渡到 QtCreator 2 0 但仍有一件事困扰着我 QtCreator 当我在 QtCreator 中调试时 我在Application output tab直到我停止正在调试的
  • 仅当从 Qt 连接时网页返回 HTTP 406 错误

    我有一个测试页面设置http mlecturedownload com test qt php http mlecturedownload com test qt php有以下代码
  • Qt 码头调整大小事件

    有没有办法在 Qt 中捕捉码头的调整大小事件 我需要能够检测到扩展坞何时调整大小 而不仅仅是其位置或 功能 发生变化时 看起来 QDockWidget 没有 调整大小 信号 如果您不希望子类化以仅获得调整大小事件控件 您可以安装事件过滤器
  • 使用 QTestLib 时抑制 qDebug

    我正在向 Qt 中的项目添加单元测试 并希望使用 QTestLib 我已经设置了测试并且它们运行良好 问题是在项目中我们重写了 qDebug 以输出到我们自己的日志文件 这在运行应用程序时效果很好 问题是当我测试类时 它有时会开始记录 然后
  • 在 Qt 中创建/写入新文件

    我正在尝试写入文件 如果该文件不存在 则创建它 我在互联网上搜索过 但没有任何效果 我的代码目前看起来像这样 QString filename Data txt QFile file filename if file open QIODev
  • Qt ObjectName() 必须是唯一的吗?

    如标题所示的简单问题 如果我打电话setObjectName 在一个对象上 它是否必须是唯一的 或者只是因为约定而推荐 我已经子类化了QLabel 并希望自动为创建的对象命名 如果这是一个坏主意 我会找到一些设置随机唯一名称的方法 我实际上
  • 在 Qt 中用像素图画笔画一条线?

    一段时间以来 我正在使用 Qt C 开发一个简单的绘图和绘画应用程序 目前我正在使用 QPainter drawLine 进行绘制 并且工作正常 我想做的是用像素图画笔绘图 这是我可以做到的 我可以使用 QPainterPath 和 QPa
  • PyQt QFileDialog exec_ 很慢

    我正在使用自定义QFileDialog因为我想选择多个目录 但是exec 功能非常慢 我不明白为什么 我正在使用最新版本的 PyQt 代码片段 from PyQt4 import QtGui QtCore QtNetwork uic cla
  • 将 QMAKE_CXXFLAGS += -std=c++11 添加到 qt 中的 .pro 文件不起作用(在 linux 12.04 上)

    编译器输出 main o 错误 1 cc1plus 错误 无法识别的命令行选项 std c 11 解决方案是更新系统上的旧 gcc 版本 事实上 我很惊讶你的 12 04 Ubuntu 变体上有这么旧的版本 默认情况下应该有 4 6 3 您
  • 错误:命名空间“std”中没有名为“enable_if_t”的模板;您的意思是“enable_if”吗?

    我正在 macOS 10 13 6 上使用 Qt 5 11 3 进行编译 Qt使用的clang版本是 Applications Xcode app Contents Developer Toolchains XcodeDefault xct
  • 隐藏 QLineEdit 闪烁光标

    我正在开发 QT v5 2 我需要隐藏闪烁的光标 插入符号 QLineEdit永久 但与此同时 我想要QLineEdit可编辑 因此 readOnly 和 或设置 editable false 对我来说不是一个选项 我已经改变了背景颜色QL
  • QTableView 选择已更改

    我有一个QTableView我需要从中获取选择更改事件 我似乎无法让连接工作 我有 MyWidget h protected slots void slotLoadTransaction const QItemSelection selec
  • C++:头文件中全局函数的多重定义错误

    该函数是全局的 在头文件中定义 暂时地我想把它留在那里 头文件还构成一个具有内联函数的特定类 其中一个函数调用this全局函数 源文件不包含任何有问题的全局函数 有关错误原因的任何提示吗 如果有人感兴趣的话我可以发布代码 mainwindo
  • 在 4K 屏幕上使用 Matplotlib 和 TKAgg 或 Qt5Agg 后端

    我在 Ubuntu 16 04 上使用 Matplotlib 2 0 和 Python 3 6 来创建数据图 电脑显示器的分辨率为 4k 分辨率为 3840x2160 绘图数字看起来非常小 字体也很小 我已经尝试过TKAgg and Qt5

随机推荐

  • 正则表达式选项匹配多行并忽略大小写

    我有一些格式错误的 html 有时缺少 此外 它有时显示大写字母 有时显示小写字母 div class main div class subsection1 h2 div class subwithoutquote StackOverflo
  • 使用 printf() 流式传输 void 函数的输出

    我想存储函数的输出 matrix output printf 打印以下输出 矩阵 0 1 2 1 2 3 2 3 4 我想将此输出保存在文本文件中 在第一次尝试中 我修改了原来的matrix output fprintf 以便它连续使用存储
  • 写入文件时出现 UnicodeDecodeError

    我知道这是一个非常常见的错误 但这是我在尝试写入文件时第一次遇到它 我在用着networkx使用图形进行网络分析 当我尝试写入任何格式时 nx write gml G Graph gml nx write pajek G Graph net
  • 这个代码是什么? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 举个例子 这里有一行 returned Obfuscated 0D 03 1E 0B 1
  • EnterKey 有时在 IE8 中不起作用,使用 jQuery 的 keyPressed

    在我的 HTML 中 CSS edit field height 50px width 495px line height 3 6 html
  • Winforms 禁用文本框上的键盘输入但保持文本框启用

    场景是这样的 我需要禁用文本框以接受用户的输入通过键盘 但文本框应该使用类似的设备来接受输入条码读取器 我想持有一个计时器并获取两次击键之间的时间跨度 尚不清楚 但也许有一个属性或更智能的算法可以实现这一点 附注它是一个 Windows 窗
  • .net core第三方图形验证

    asp net core是否提供第三方图形验证库的示例 我正在研究这个 但我查了一些资料但没有成功 请给我一些例子 谢谢 供我参考 还有其他好的库吗 https tutexchange com how to implement captch
  • 单击按钮后将对象添加到 JPanel

    I have created a JScrollPane with a JPanel inside it and I want to add JPanel JLabel Other objects after pressing the bu
  • 快速修改另一个视图控制器中的一个变量

    我正在用 Swift 开发一个应用程序 它的要点是告诉人们各种货币的比特币价格 要选择货币 用户可以使用 UITableView 从视图控制器的列表中进行选择 这是currencyViewController 它是从我的主屏幕viewCon
  • Swift - 二元运算符 == 不能应用于两个 [[Double]] 操作数 [重复]

    这个问题在这里已经有答案了 我写了一个像这样的小函数 func compareTest values Double if values 1 0 2 0 some code 但是当我尝试编译时 我在比较时收到错误 二元运算符 不能应用于两个
  • neo4j - 如何通过rest api运行1000个对象的查询

    我需要运行 1000 个对象的查询 使用 batch端点我可以让它工作 但太慢 30 秒 300 个项目 所以我正在尝试与本文档页面中所述相同的方法 http docs neo4j org chunked 2 0 1 rest api cy
  • Eval 是邪恶的...那么我应该用什么来代替呢?

    ajax 请求返回一个标准 JSON 数组 其中填充了用户的输入 输入已被清理 并且使用 eval 函数 我可以轻松创建我的 javascript 对象并更新我的页面 所以问题就在这里 无论我多么努力地尝试清理输入 我都不愿意使用 eval
  • Valgrind:内存泄漏与否?

    我在程序上运行 valgrind 得到以下输出 我将忽略上面的 83 个错误 让我知道是否应该将它们包含在日志中 9723 LEAK SUMMARY 9723 definitely lost 0 bytes in 0 blocks 9723
  • UITextView 只是水平滚动帮助

    我有一个 UITextView 我想水平显示它的文本 我的 UITextView 有一个静态宽度 UITextView alloc initWithFrame CGRectMake 0 0 161 23 所以当 UITextView 的文本
  • R从n个元素的字符向量生成大小为m的所有可能组合[重复]

    这个问题在这里已经有答案了 所以 我有这个用于基因组数据的向量 c T A C G 我想生成大小 3 的所有可能组合 并重复 例如 T T T T T A T T C T T G T A T 这会给我 4 3 64 种组合 大小 4 的组合
  • Exoplayer如何知道要使用自定义视频视图播放哪个URL

    我正在开发一个在线视频播放器 我正在使用TextureVideoViewMute extends TextureView implements TextureView SurfaceTextureListener自定义类作为自定义视频播放器
  • 计算表达式中的递归函数

    首先介绍一些背景 我目前正在学习一些有关单子解析器组合器的东西 当我尝试从以下位置转移 chainl1 功能时这张纸 第16 17页 我想出了这个解决方案 let chainl1 p op parser let x p let rec ch
  • 如何在 JavaScript 中合并两个数组并消除重复项

    我有两个 JavaScript 数组 var array1 Vijendra Singh var array2 Singh Shakya 我希望输出是 var array3 Vijendra Singh Shakya 输出数组应删除重复的单
  • 如何计算音频 dB 级别?

    我想用计算机的麦克风计算房间噪音水平 我将噪音录制为音频文件 但如何计算噪音 dB 级别 我不知道如何开始 如果您想要技术上准确或有科学价值的答案 那么前面的所有答案都是正确的 但是 如果您只想对相对响度进行一般估计 例如您想检查狗是否在吠
  • Qt3d 使用 QSceneLoader 和 qt 5.8

    我尝试使用 QSceneLoader 加载在外部编辑器中创建的 3D 场景 但没有成功 我总是在加载阶段得到断言 我使用 OBJ 模型 qt 的示例 它很容易加载为 QMesh 测试仓库https bitbucket org ibnz te