
文章目录
- 1. Qt Hello World 程序
- 1.1 通过图形化界面的方式
- 1.2 通过代码的方式实现
- 2. Qt 的编码问题
- 3. 使用输入框实现hello world
- 4. 使用按钮实现hello world
- 5. Qt 编程注意事项
- 6. 查询文档的方式
- 7. 认识Qt坐标系
1. Qt Hello World 程序

1.1 通过图形化界面的方式
我们先讲解第一种方式,用图形化界面的方式,我们先打开widget.ui进入Qt designer:

进入之后,我们可以拖拽Label这个控件:

然后我们可以拉伸这个控件,敲出我们的hello world



然后在我们的widget.ui中就有我们的Label标签:

此时在setupUi里就有了lable的相关设置:

1.2 通过代码的方式实现
我们先打开widget.cpp:

那么我们需要在这里面去构建我们的Label:

可以看到出现了错误,因为Qt中每个类都有对应的同名头文件。我们需要包含头文件:

创建对象的时候,我们可以在堆上创建,也可以直接在栈上创建。但是建议在堆上创建更好。

给当前的对象指定一个父对象,让这个对象知道自己在哪。

这里的QString是什么呢?





上述代码,在Qt中不会产生内存泄漏,label对象会在合适的时候自动被析构释放。之所以能把对象释放掉,主要是因为把这个对象挂到了对象树上。对象树主要是一个N叉树,把界面上的各种元素组织起来了。

假设我们要布局一个这样的界面,那么它的对象树如下:

使用对象树,把这些内容组织起来,最主要的目的,就是为了能够在合适的时机(窗口关闭/销毁),把这些对象统一进行释放。

所以,我们更加建议通过new的方式创建对象,也就是把这个对象的生命周期交给Qt的对象树来统一管理。如果这个对象是在栈上创建,就可能会存在一些"提前释放"的问题。
2. Qt 的编码问题

可以看到,当析构打印的时候,它是乱码的。
在计算机中,一个汉字,占几个字节?
对于这个问题,只要你回答出一个具体的数字,就一定是错的。因为中文编码有很多种。计算机存的是二进制数字,英文字母可以用一个ASCII码表来表示:规定了每个字符,都有一个对应的数字来表示。
那么中文我们也是采用了一个大表格,给每个汉字,分配一个整数。
字符集:表示汉字的字符集,其实有很多种的。不同的字符集,表示同一个汉字,使用的数字不相同。


可以看到这个文件采用的是UTF-8来进行编码的。



现在就可以正常打印了。


3. 使用输入框实现hello world

因为只打印hello world所以,使用单行编辑器就行。

我们把这个控件拖拽就可以编辑了。

右边可以修改这个编辑框的属性。


代码的方式:

4. 使用按钮实现hello world


但是这里点击没有反应,需要和信号槽机制相关。

在Qt中,需要使用一个叫做connect函数:



比如在上面的widget.ui中,有一个属性:


下面进行一个演示:

这样的代码就可以进行按钮的切换。


代码方法:


5. Qt 编程注意事项
Qt 偏好驼峰命名法:

举个例子:

Qt Creator 中的快捷键:

6. 查询文档的方式
打开帮助⽂档有三种⽅式:


3、找到 Qt Creator 的安装路径,找到 assistant.exe,双击打开;



7. 认识Qt坐标系

在计算机中的坐标系,X向右增加,Y向下增加。

举个例子:




这里坐标的单位是像素。


这里我们也可以设置窗口的位置。