一.Qt是什么
Qt是⼀个跨平台的、面向对象的 C++ 图形⽤⼾界⾯应⽤程序框架,用于进行客户端开发。
客户端,即与用户打交道的程序,例如手机,电脑上的各种应用程序等。客户端背后,需要有服务端来维持,即我们程序员所写的底层代码。
大部分客户端都需要服务器做支撑,但是也有不需要服务器的,一般为一下简易的无需网络的小程序。比如计算器等。
我们所分享的Qt,是用来进行桌面级应用开发的,即电脑上的应用程序。
客户端开发有两个重要任务:编写代码,设计和用户交互的界面。
和用户交互的界面有两种典型风格:
- 命令行界面/终端界面(即黑框框),称为TUI,一般是设计一些给程序员使用的专业软件。
- 图形化界面,称为GUI,即给普通用户使用的软件。
Qt就是用来编写桌面的GUI程序的一套框架。
二.Qt 的优点
- 跨平台,⼏乎⽀持所有的平台;
- 接⼝简单,容易上⼿,学习 QT 框架对学习其他框架有参考意义。
- ⼀定程度上简化了内存回收机制;
- 开发效率⾼,能够快速的构建应⽤程序。
- 有很好的社区氛围,市场份额在缓慢上升。
- 可以进⾏嵌⼊式开发。
三.Qt基础编程
1.HelloWorld
(1)界面实现
创建好基础项目之后,可以双击项目下Forms文件中的widget.ui文件,随后会进入界面设计:
:
在设计界面找到label标签, 拖动到中间的设计框中,然后就可以在标签中编辑“Hello World”。
之后运行即可实现在界面中打印Hello World。
(2)代码实现
代码实现标签打印“Hello World”,我们需要在widget.cpp文件中创建Qlabel对象来实现,在Qt中,使用对应的类需要包含对应的头文件,所以我们需要包含Qlabel头文件:
推荐通过new方式在堆上创建对象,随后调用setText函数,就可以实现:
在上述代码中我们注意到,Qlabel在创建对象时传了一个this,this为QWidget对象,这样做的目的,是为了构建起Qt对象树,这样QWidget就成为了Qlabel的父节点。
通过对象树,能够把界面上我们所使用的各种控件对象给组织起来,最主要的目的,是为了在合适的时机(窗口关闭或销毁),把这些对象统一进行释放。
这就是为什么推荐使用new创建对象的原因,这样可以把对象的生命周期交给对象树来统一管理。
从生成的界面中能够看出,用代码实现的标签默认在界面的左上角打印,可以通过move函数来选择标签要打印的位置,其中move的参数分别为界面的x坐标(向右)、y坐标(向下),单位为像素:
当然除了上述标签方式打印“Hello World”之外,我们也可以通过文本编辑框:
Line Edit:单行编辑
Text Edit:多行编辑
文本编辑框同样可以直接在界面实现或者编码实现,还有更多方式这里就不过多分享。