Qt君在Qt 4.7版本就开始使用QML了,一开始觉得这样的语法很奇怪,没办法项目需要使用。既然项目用到QML,那就一边学习一边做呗。
话说QML入门非常简单,当时大概是学了两周了吧,感觉就掌握得差不多了。下班的路上骑着2万多公里的小摩托,突然有点老夫聊发少年狂的感觉,一不小心就闯了个红绿灯(当然这是不对的)。
当时觉得一用QML爽,一直用一直爽,开发效率实在太高了。似乎学习QML并没有像网友说得那么难。
后面做项目都是使用QML,一直从Qt 4.7,Qt 4.7,到Qt 5.12。QML由原来的Widgets模块脱离到Quick模块。随着项目越做越大,需要用到的QML技术也越来越复杂,遇到的问题也越来越多。
比如QWidget和QML混合编程的问题,内存占用大,QML使用opengl插件渲染视频性能问题,还有就是到至今QML也不能自定义鼠标形状,也是需要通过间接去实现。当然还有很多问题不一一列出来了,虽然大部分都可以解决,但每次都会花很大的代价去(打补丁)解决问题,反而降低了开发效率。
逐渐地,Qt君也在思考。到底是我用的方法不对还是QML本身就不适合复杂化。
面对上面一系列的问题,甚是懊恼,只能让一部分新项目不再使用QML了。Qt君认为目前QML非常适合做普通的界面项目,不需要高性能视频渲染,矢量画板功能等设计到高性能计算的都应该避免使用。