目前,Qt的基础学习视频就到这儿,告一个段落。好多人说,Qt有哪些用,你们都流行java开发,如今都是安卓的天下。下边,就我个人经历而言,来说说对于它的见解。
从2007年步入计算机软件行业,由单片机、嵌入式linuxlinux shell,到server服务端开发,也从用VB到C再到C++,从windows到linux逐渐走过来,认为每天都是学习新的知识。非常是使用了网路编程传输数据,数据量并发,从linux下的select、epoll到windows的IOCP、穿越net等方法,就会感觉非常的开心,很神奇又学到了新的知识,认为自己很NB。到2010年以后,因为工作须要,学习了vxworks下windml以及DOS下的图形编程,在这种系统下边有好多控件都是画点、画线去实现。常常现今认为很简单的东西当时在DOS下实现都非常困难。如同在操作系统下边的简单形参句子,在单片机编程中就须要对寄存器进行多次操作,相当麻烦。当时用MFC写软件的时侯,一下子认为编程忽然简单了很多。也正是在MFC的基础上我了解了窗口系统,晓得了路径,画刷、画笔、OnPaint以及消息路由等等原理。
后来从MFC转回用Qt的时侯,几乎就没有哪些学习过程中的觉得。基础上面学就边用,一下子就上手了。如同写多了程序的程序员无论你是用C、C++还是java,哪怕没有使用过这种语言,你就会发觉学习并使用这种东西都不是太难的事情。个人觉得,程序员最重要的就是有一个良好的思维逻辑。其实项目后来从MFC到Qt的转变,并不是由于Qt有多牛而MFC这个开发工具不行,也不是由于它的哪些讯号与槽的机制,而是由于它跨平台和开源的特点。也正是因为这种诱因,Qt的用户群体逐渐显得庞大上去,从PC端到嵌入式,成为了一个目前流行的GUI库。
有好多人问Qt有哪些用,能拿来干哪些,如何用Qt来实现并口数据通讯,网路通讯。这么,先回到Qt究竟是哪些,Qt最本质的用途是GUI的开发库,是应用程序人机交互可视化系统的诠释。
也可以说Qt本身就是和数据通讯、串口、网络无关的图形库,假如你本身都会并口编程、xml读写,这么你的先前的代码可以直接和Qt的界面工程放到一起编译使用,丝毫不受影响。其实你要是执意要使用Qt本身提供的并口类或则是网路编程类也是可以,它们的用法并不会和你在操作系统下并口以及网路TCP和UDP编程有太多的区别,甚至你可以觉得是你写了一个特别好的并口类,提供给开源社区基于嵌入式linux的qt图形程序实战开发,之后把你的并口类封装成带Q开始的类而已。
随着Qt集成的类越来越丰富,我大致把它界定几个蓝筹股基于嵌入式linux的qt图形程序实战开发,在最基础的时侯了解qt的widget、控件和讯号与槽,你就可以去开发qt的应用程序。也就是目前为止视频中提到的内容,因为在Qt大多数类的封装基本上都用到了Qt特有类似QString,Qpixmap,我们也是有必要去学习一下。
Qss你可以把它当作界面编程的一个补充,在你不熟悉控件自绘又想作出一个漂亮的界面时,可以使用它,它的门槛比较低,句型也比较少,和css式样表的句型类似。
虽然Qt中还有基于项的图形视图Qgraphics,它和Qtwidget有以下区别和联系。
QGraphics类可以设置rotation,然而QWidget不行;基于上述缘由,QWidget在联通设备上(分横竖屏)就不能挺好的适应屏幕的方向;因为是基于项的图形视图,管理一个个QGraphicsItem显得非常容易,可以在一个Scene中管理成百上千的视图项。
然而QGraphics中并没有像QWidget类那样有丰富的控件。并且将QWidget进行重画,弄成QGraphics类不是这么明智,基于此,QGraphics是支持将QWidget添加到他的视窗体系的。虽然初期Qt的QGraphics视图以及QStyle(qss)就有了QML的雏型了,而鉴于动态脚本编程越来越受欢迎,QML成为Qt另外一种未来的发展趋势。
我个人觉得,Qml是Qt的另外一个编程分支,QML作为Qt新生力量,完完全全承继了Qt包罗万象的特性,它的诞生为Qt涉足联通领域迈出了历史性的一步。随着Qt的不断迭代,QML/QtQuick也可用于开发传统的桌面程序,而且效率越来越高,你可以用它做任何你想做的事情。非常是对于界面要求较高的开发者来说,其作用更为重要。
其实假如你希望学习3D,也可以了解Qt的另外一个体系QOpenGLWidget方面的编程。最后,我个人还是觉得要学习编程,不管你去学习那个工具、哪门语言,最重要的还是去将它的最本质最核心的东西了解透彻,旁边转其它方向的时侯将会发觉原理性的东西都是想通的。正如你写一个服务程序,不了解系统,不了解任务的调度机制。很难想像这个程序能有多好。一个语言的模块,你在另外一门语言其实也可以找到类似的定义。好了,因为我的阅历有限,如有不足或则错误的地方还请你们多多见谅。近来将修整一些时间linux内存管理,瞧瞧下一步一起聊一聊其它哪些方面的Qt主题。在此也感谢你们的关注和支持。再度谢谢。