最近用到NodeInstantiator批量加入实体

刚开始用的时候一直程序崩溃

错误代码大致如下:

// main.qml
ApplicationWindow {
......
Loader {
id: root_loader
}
......
Connections {
target: manage_system
onSystemInited: root_loader.source = "MainWindow.qml"
}
......
} // MainWindow.qml
Rectangle {
Scene3D {
id: scene_3d
aspect: ["logic", "input]
entity: SceneEntity {
......
NodeInstantiator {
model: 2
delegate: Entity {
......
}
}
......
}
}
}

大体上代码结构类似上面这样,简单起见NodeInstantiator的model就写成2

manage_system是c++写的一个QObject子类,存储一些加载进来的数据

manage_system初始化完成后会发射一个systemInited信号.

用Loader就是因为希望能在manage_system完整初始化之后,再去加载一些控件(有信息依赖于manage_system)

然而程序崩溃的原因就是用了Loader,改成下面这个结构就好了

// MainWIndow.qml
Rectangle {
Connections {
target: root_loader
onLoaded: instantiator.model = 2
}
Scene3D {
id: scene_3d
aspect: ["logic", "input]
entity: SceneEntity {
......
NodeInstantiator {
id: instantiator
// model: 2 /* 注意这里没有指定model,延时初始化model */
delegate: Entity {
......
}
}
......
}
}
}

我猜测第一段代码的问题是instantiator初始化的时机过早(parent的状态还不是Loader.Ready)

所以在root_loader加载完成后再指定model

Qt3D NodeInstantiator 使用时报出index out of range错误的记录的更多相关文章

  1. EGit 在使用时出现 git-upload-pack not found 的错误

    在 Ubuntu 上使用Eclipse 的插件 EGit 从 GitHub 上下载资源时出现 git-upload-pack not found 的错误,如图 (另,EGit 在 Windows 上的 ...

  2. 本地计算机上的OracleOraDb11g_home1TNSListener服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。——Oracle监听器服务无法启动!

    问题: oracle服务设置为手动启动.但是开机后手动启动监听服务后弹出框,提示“本地计算机上的OracleOraDb11g_home1TNSListener服务启动后停止.某些服务在未由其他服务或程 ...

  3. Cookie使用时需要注意个数及大小限制

    各浏览器对Cookie有一定的限制,在使用时需要格外注意. 各浏览器之间对cookie的不同限制:   IE6.0 IE7.0/8.0/9.0+ Opera FF Safari Chrome cook ...

  4. EntityFrameWork 使用时碰到的小问题

    EntityFrameWork 使用时碰到的小问题 1,在使用orm访问数据库的相目里,也要引用EntityFrameWork.dll,否则无法使用orm 否则,编译错误 错误 5 "Sys ...

  5. MySQL 安装和启动服务,“本地计算机 上的 MySQL 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。”

    MySQL 安装和启动服务,以及遇到的问题 MySQL版本: mysql-5.7.13-winx64.zip (免安装,解压放到程序文件夹即可,比如 C:\Program Files\mysql-5. ...

  6. MaterialCalendarView使用时遇到的问题

    一.概述 MaterialCalendarView是一个开源项目.功能强大支持多选.单选.标注等. 二.问题 1.其继承自ViewGroup,故与CalendarView半毛钱关系都没有,完全是一个新 ...

  7. [备忘][转]rsync使用时的常见问题

    sync使用时的常见问题: 错误1: rsync: read error: Connection reset by peer (104) rsync error: error in rsync pro ...

  8. 小白学数据分析----->移动游戏的使用时长分析

    写下该文章,是因为之前看到了几款游戏一个典型的玩家刺激活动,在<多塔联盟>,<萌江湖>等多款游戏的设计中都有体现,如下图所示: 这个功能点的设计,今天在这里讲的更多的还是跟数据 ...

  9. VS2010 使用时选择代码或双击时出错,点击窗口按钮后VS自动重启问题

    VS2010 使用时选择代码或双击时出错崩溃,点击窗口按钮后VS自动重启问题 下载补丁,打上补丁之后,重启电脑,解决了问题. WindowsXP的下载地址:Windows XP 更新程序 (KB971 ...

随机推荐

  1. WEB图片水印实现

    很多大公司内网都有页面不可见水印,一旦图片截图发送给外部后,可以根据图片不可见水印进行溯源,查出发送人的信息. 原图:(就是下面白色的图片) PS 打开这个图片,在这个图片上新建图层,填充黑色,混合模 ...

  2. 函数使用十一:BAPI_BANK_CREATE

    FI01创建银行主数据: BAPI:BAPI_BANK_CREATE *&----------------------------------------------------------- ...

  3. linux 下首次使用github 和其中遇到的问题

    1首先安装git sudo apt-get install git 2配置git文件 git config --global user.name "你的用户名" git confi ...

  4. 性能测试基础---jmeter二次开发

    ·Jmeter的二次开发,常见的有以下几种类型: ·扩展.修改Jmeter已有的组件(源代码) ·扩展.修改Jmeter已有的函数. ·完全自主开发一个新的组件(依赖于Jmeter提供的框架). ·扩 ...

  5. AMD 锐龙三代系列台式机处理器(台积电7纳米工艺)

    AMD 锐龙 5 AMD 锐龙 5 3500X 处理器 6核心6线程,基准时钟频率3.6GHz,最大加速时钟频率4.1GHz,一级缓存384KB,总二级缓存3MB,三级缓存32MB,内存支持最高DDR ...

  6. 缓存中,2个注解:@cacheable 与 @cacheput 的区别

    @cacheable:只会执行一次,当标记在一个方法上时表示该方法是支持缓存的,Spring会在其被调用后将其返回值缓存起来,以保证下次利用同样的参数来执行该方法时可以直接从缓存中获取结果. @cac ...

  7. 08-人脸识别-FaceNet-classify.py代码阅读(说明见注释)

    """An example of how to use your own dataset to train a classifier that recognizes pe ...

  8. idea每次新建项目的默认路径

    idea每次新建项目的默认路径 每次新建项目的默认路径是上一次新建项目所在的文件夹.第一次需要手动切换.

  9. 深度学习查看GPU实时使用情况

    1.CPU使用情况查看 动态查看 打开终端,输入: $  top按Ctrl+C退出查看. 即可看到实时的CPU使用情况. 查看版本 $ top -h 即可看到当前procps-ng的版本. 2. gp ...

  10. 2016 ACM/ICPC亚洲区青岛站

    A B C D E F G H I J K L M O O O O     $\varnothing$     $\varnothing$  $\varnothing$  $\varnothing$  ...