先啰嗦几句吧,第一次写博客,接触优快云的时间也并不是很长时间,之前有问题就是在百度上各种找,在这里找到答案也是浏览一下,找到就走。注册账号开始关注论坛是进入公司实习,使用QML开发软件开始的。蓦然回首,已是差不多将近有4个月了,对于许多活跃在论坛上的大家们简直是沧海一栗了,接触论坛以来,我也觉得之前真的是错过了好多,认识不认识的,大家把问题拿出来,总会有人帮你解决,所以现在也是养成了习惯没事就上论坛看看,睡觉之前上论坛看看,当然现在也是仅仅在Qt板块的论坛活跃。在此深深的感谢那些帮助过我的人。
之前的大侠们,写过好多关于QML方面的专业知识,各种语法的介绍等等,为我的开发也提供了很大的帮助,虽然到现在我还是不明了Qt与QML之间真正的界限,所伸展的领域。但是从完全不懂到现在,虽然学得慢,但是一步一步最终也是对QML有一定的基础了。上周刚把一个月的通讯软终端界面开发完成,对自己也是相当满意,哈哈,,,回想自己刚开始那段时间,没有书,看着Qt自带的英文文档,网上相关的知识也是不多,一点一点的摸索,简直慢到让自己崩溃,可还是熬了过来,站在现在的位置看过去:我还是不够努力!没有加班,没有熬夜(熬夜也不是学习)实习实在过得太过安逸了。马上毕业,加之生活压力,我要开始最后抓两把了,向大神们学习,开始奋斗ing...
废话好多,其实还没说完,哈哈,生活中我可不是这样的话唠,想让我多说两句,还的看心情!
说说我所了解的QML吧,几个月的小经验,哈哈,大神就不用费眼了,,,从学习,开发到现在所用到的QML控件应该是有:button,listView,tabview,text,image,scrollBar,MouseArea,TextInput,rectangle,layout,fileDialog,textField,还有一些自定义的组件吧,貌似就这么多吧,忽然觉得自己玩的好少,但是确实做出了一个通讯终端出来,界面的一些显示,之间的信号连接,数据交互,界面跳转等等,那些曾经很为难我的问题确实遇到了不少,开发笔记都写了两本了,只是一直没有时间,没有心思去整理,留着让儿孙们看吧,哈哈
虽然遇到的问题挺多但是一时还真不知道想说那个,那我就想到那个讲讲我自己使用的体会吧,如果看到有错的,请一定要指正啊
1. 从main中讲起,使用QML难免会用到,或者说必不可少吧,要用类,那么类的导入我所使用的有两种方式
一种是使用qmlRegisterType注册类型,然后导入使用,这种方式可以直接看成是rectangle使用,一模一样,只是在本文件中使用操作它的ID等,在其他文件想要进行信号连接,数据访问,实在难办,有知道的嘛?请指点指点啊,如果想实现多个文件之间数据交互,信号连接,我就会使用第二种方式,那就是setContextProperty注册成上下文属性,在那都能访问。看懂了吗,还是我表达不清晰
2. 之前出了一个错误,使用Layout时,循环绑定了!百思不得其姐啊,我拿到的窗口大小就是有两种,最大,最小;就使用minW/H, maxW/H 就会告诉我循环绑定的错误但是界面显示却是好好的,很符合我的要求就是下面编译会报错,一直不想理会,后来仔细看看Layout才知道,学的太差了,自己太傻了,只需要设置preferredHeight和fillHeight就行了,效果一样而且还不会报错。
3. 所有问题中我觉得最纠缠的还是listView的数据model,与C++结合起来,哎呀,简直弄得我想跳海了,用过QStringList简单的数据显示,后来多字段的时候逼急了,高了好半天使用QList<类>还得设置QML可以访问的角色,算是过关了。还有listView那个数据项分页加载的问题,我是通过检查滚动条是否滑到最下面再进行加载新的数据model,不知道有没有更好的办法,好像自己的C++水平也是仅仅了解的情况,哎,以前都是怎么混的,,,,这个listView确实遇到了很多的问题,还有一个就是鼠标经过,悬浮,点击时进行背景图片的切换,也是搞了好久才能实现,实现时感觉效果还是杠杠的,中间有许多苦涩,有兴趣的找我慢慢聊吧
4. 除了listView的大问题外,就是布局的问题了,位置甚至都是拿笔计算的,连贴的背景图大小都算过,最大的感觉就是繁琐,调整一点点,可能就会进行一次大改动,还得一个一个数值,或是属性设置试试看效果,烦透顶啊。
一口气写了这么不多,就开始饿了,呵呵,看着这么像是发牢骚呢,第一次写博客还是希望各位路过的手下留情啊