qt qlistview获取选中行的值_Qt入门DirectX11学习之旅(五)文件系统 从工程文件打开自定义格式的Shader...

本文介绍了使用Qt的QFileSystemModel构建一个简单的文件系统管理器,用于组织DirectX学习项目的资源。作者通过创建编辑器窗口和管理类,实现了双击文件打开材质编辑器的功能,着重讨论了Qt中ListView的选中行值获取和模型视图原理。未来计划继续开发MeshEditor和Shader开发。
摘要由CSDN通过智能技术生成

e4845a92e7e514b573fd693e3306a53d.png

【闲话开始】

本来今天想直接把透视变换加进去的,后来发现如果不很好的组织模型Mesh等各个资源数据到项目后期容易看不明白前面自己写的代码了~

所以决定一步一步开始把项目改成一个小小的游戏引擎~

先做个简单的文件系统管理下文件吧。。。不然乱糟糟的对于后期的深入学习directX会很麻烦,总不能每次写不下去了就从DrawTriangle从头来过吧。

很简单的效果如下,大概效果:可以创建xmat文件,双击xmat文件,可以打开对应的材质编辑器。界面没有美化,所以比较丑,不过主要是为了学习DX和图形学。后期如果需要再去用qt样式表做个界面皮肤

80b2a6042a4ef3fbd36ece9e70c5af5a.png
https://www.zhihu.com/video/1203425604500062208

【闲话结束】

【正题开始】

参照 虚幻 U nity3d等引擎最开始就是创建工程文件,这样做的好处就是能很方便的管理我们自定义的资源。

参照各大引擎,我规划了下自己目前需要的文件夹架构图。

3a863906abe170fa14133d6e27d3edb1.png

目前存放一些mesh网格,材质文件等,所以这个简单的架构已经够用了,后期可以慢慢根据需要添加~

我将工程中的各个类名规范化整理了下,目前够用了:

eaad0c97491e5a30a42ac6bd5ebb15d3.png

Editor_ 开头是编辑器窗口

Manager_ 是负责管理打开编辑器窗口的管理类,诸如材质编辑器、模型编辑器等都是可以多个窗口同时存在的,那么就由每个Manager来统一负责同类型的Editor管理。

Xctor类似于Unity中的Gameobject用来挂组件的,上面有组件列表

XCom类为组件类,用来实现各个独特功能的组件

目前我先做了一小部分

798d0301314020e368bf34957b693b16.png

这里为了方便简单,在搭建过程中使用QFIleSystemModel来简单的做一个文件管理系统。后期如果需要强力自定义功能的话要考虑重写为自定义的Model,Qt的模型视图原理CSDN转载了下教程帖子如下:

CSDN-专业IT技术社区-登录​blog.csdn.net

。故此单独搞个ContentModel类,方便以后重写

69e60a7e049c20369d196c1199fe59ee.png

这边有个坑就是QFileSystemModel在赋值根路径的时候需要在ListView里重新指定下Index

不然刷新不出来

单独SetRootPath无法使得QFileSystemModel正常工作,需要把ListView传进来刷新下index

798f9ec4b017254728c1afa1fc6b1fdf.png

接下来双击文件打开Material编辑器的效果,我自定义了一个ListView,然后重载鼠标双击事件,当鼠标双击时获取所有选中文件的路径,然后根据后缀名*.xmat打开MaterialEditor,这个方法比较暴力,em,不过目前我想要简单直观粗暴。

2a568d999c03cf6dbf73ed94c081e066.png

eb6027269ffc2f0260e2340eb85ed6cf.png

哈哈,打开编辑器还是用if判断字符串打开的。目前比较直观,后期要想想有什么更简便的方法能做到这个效果。

结束。下面可能需要搞个MeshEditor,先把模型数据规划好了,再继续DX的Shader开发

未完待续。。。

【正题结束】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值