导言

这次讲一下这半个月学习Qt的一个收获。

首先,什么是Qt。在我看来,Qt就是用C++封装了很多API的类库(这里我说的是狭义的Qt,也就是QtWidget),本身又和C#的桌面应用开发类似的一种嵌入式开发平台,它有着自己的编辑器,当然你也可以在VS等更喜欢的编辑器里配置Qt从而在里面进行Qt开发,更多Qt的具体信息可以在其他博主那里得到很充分的介绍。

当你新建了一个Qt项目,项目本身的一些文件及其里面的类和函数很容易便能看出来这里是干什么的,在开发过程中,其实和写原生C++没有差别,只不过Qt封装的API还是比较好用的,如果你不用,也无伤大雅,但是如果是一些要展示在界面上的数据,因为界面上的小物件包括界面本身都是Qt封装的数据类型或者类,所以你的数据也得是它定义的数据类型,其他倒也没什么可以说的,还是比较容易上手的。

唯一不好的是,即使是在B站,好的Qt教学视频几乎没有,有也是好几年前的发出来的若干年录的视频。(我找到的一个不错的教学视频没几天就被举报侵权下架了…属实离谱)

Qt界面开发分为两种模式,一个是Qtwidget,风格和C#桌面开发很相似,是传统的也是较为成熟的开发模式,适用场景是展示数据,图标等应用,桌面应用等。另一种模式是迥乎不同的一种界面开发模式,我们可以将在QtQuick库下,用qml文件来写界面看做是项目的前端,如果项目本身不涉及高强度的计算和文件读写工作,甚至它就是整个项目,否则我们以前使用的Qt就从当了它的后端进行提供计算和数据,其中qml充当着h5+css的作用,交互也是和web开发一样使用js。

Web开发与Qt开发 对比项web开发Qt开发

数据传输文件

json

xml(Qt5之后也开始转向json)

前后端数据交互

路由

信号函数,槽函数

界面开发

h5+css+js

类似于C#进行桌面开发(Qtquick是qml+js)

图形渲染

WebGL(openGL+js)

openGL

js引擎

google的V8

V8->V4(Qt专用引擎)

qml还存在很大进步空间,估计Qt6之后会是qml的黄金巅峰

1.qml文件在vs没有代码自动补全
2.在vs大量错误不会报错,会没有警告直接停止运行
3.开发文档等于没有
4.很多提示只在qt creator里有
但是越来越多的移动端应用转为Qt

Qtwidget Qtquick 注意

该文章仅个人学习使用,欢迎大家一起交流学习


本文由转载于互联网,如有侵权请联系删除!