标题:Qt编写气体安全管理系统24-地图管理
作者:liudianwu
日期:2019-12-03 08:54
内容:
一、前言
地图管理的主要功能是将系统中的地图文件做添加和删除,支持常见的jpg、png、bmp等格式图片,图片分辨率建议小于1080P,最好是和目标客户端电脑分辨率一致,这样在拉伸缩放的时候会比较清晰。图片建议使用鸟瞰图,有3D立体感,类似于那些卖房子售楼部的3D模型,不懂的人还以为是什么高级的技术呢,其实就是一张图片。在做很多需要地图模块的系统的过程中,总结出了几个经验,如下:
第一个是如何快速的加载图片,记得以前有个Qt大神jason写过类似的文章,看过之后才发现,原来和我的做法完全一致,核心就是系统启动的时候将图片文件加载到内存,用QList存储起来,需要的时候根据名称标识符取出对应的图片即可,这样有多个好处,尤其是嵌入式linux上,资源很紧缺,绝大部分时候读写数据的瓶颈在IO,频繁的IO读写会大大降低性能,如果只是在程序启动的时候读写一次放到内存,用到的时候内存访问,那速度真的是瞬间,大部分初学者可能首先使用的是文件路径的方式加载图片,每次都用这种方式加载,当图片很大的时候,切换图片的时候,电脑配置好那没事,那种嵌入式linux的板子,就很卡了,相当于每次都去做了IO读取。
第二个是图片名称的管理,一开始做的是取的文件名称加上拓展名直接显示在qlistwidget的节点的text,后面发现有些时候用户会导入一张名字很长的图片文件,此时整个图片列表看起来歪歪扭扭,都被这个很长的名字撑开了,于是加上了过滤,比如超过20个字符,取前面10个和后面10个字符显示,中间加上省略号,最好还可以省去拓展名,毕竟用户从来不关心拓展名,他只知道从这个图片的缩略图单击查看切换,QListWidget的节点有个setIcon函数负责将图片转成缩略图显示,setText负责显示名称,setData负责设置自定义的数据,一般设置Qt::UserRole角色的数据,用来存放图片文件的标识符,这样在单击切换的时候取这个标识符取队列中找到对应的图片显示即可,快速完美。
皮肤开源:[https://gitee.com/feiyangqingyun/QWidgetDemo](https://gitee.com/feiyangqingyun/QWidgetDemo) [https://github.com/feiyangqingyun/QWidgetDemo](https://github.com/feiyangqingyun/QWidgetDemo)
文件名称:styledemo
体验地址:[https://gitee.com/feiyangqingyun/QWidgetExe](https://gitee.com/feiyangqingyun/QWidgetExe) [https://github.com/feiyangqingyun/QWidgetExe[/u ..
#1 [gospite 12-03 12:32]
精彩
#2 [佛山无影脚 12-03 13:11]
天天这样发不累吗?
#3 回 佛山无影脚 的帖子 [九重水 12-03 15:01]
佛山无影脚:天天这样发不累吗? (2019-12-03 13:11)
你居然不知道这是他的广告?有免费发广告的地方能叫累。