目录
前言
1.创建一个QT项目
2.查看生成的文件
3.打印一条hello world!
①使用控件实现
②使用代码实现
4.Qt的编码格式
5.信号和槽
6.Qt中的坐标系
前言
QT是一款可跨平台的电脑客户端开发软件,本文将介绍一些有关QT使用的基础内容。
1.创建一个QT项目
2.查看生成的文件
3.打印一条hello world!
①使用控件实现
②使用代码实现
需要注意的是,我们必须要使用new的方式在堆空间上创建一个Qlabel对象,因为如果在栈上创建这个类我们无法控制这个类合适释放,操作系统会自动为我们释放这个类,但是如果我们的类还没使用这个标签类的时候,这个类就已经释放了,我们就看不到结果了。此外由于我们将new出来的对象挂载到了对象树上,空间的释放无需我们进行操作,当该对象被使用完之后会由对象树自行释放。(关于对象树是什么将在之后的文章中进行介绍)。
验证:
首先向项目中添加一个C++文件,在该C++的源文件中定义一个Mylabel继承Qt中的QLabel类,而后在Mylabel类中的析构函数中添加打印信息来查看,new动态开辟的空间是否被自动释放,如果打印信息出现即意味着被释放,反之则没被释放。
4.Qt的编码格式
我们将第3部分中的日志信息更改为中文,看看会发生什么。
我们不难发现在程序输出显示上的中文变为乱码,这是因为在C++中的默认字符集与Qt中的默认字符集是不同的所以对中文字符的解释出现了差异,进而表现出乱码。那么在Qt中如何解决由字符集引发的乱码问题呢?
我们可以使用Qt为我们提供的qDebug宏,在这个宏中封装了QDebug对象,qDebug可以当作cout使用但是不可以和endl等混用,qDebug还有一个好处就是当输出的信息过多时,我们不想打印这些信息的时候可以使用一个统一的开关直接将所有的输出信息,应为qDebug是一个宏所以比较好实现。
5.信号和槽
在Qt中有一个接口名为connect(),这个接口与网络中的接口名一致但是在功能上完全不同,在Qt中这个接口用于将信号和对应的处理方法相绑定。
这里我们使用“按钮”组件进行一个简单的示例演示,在按下按钮的时候可以做到文字变换的效果。
6.Qt中的坐标系
Qt中的坐标系不同于我们在数学上常见的右手坐标系,在Qt中采用的是左手坐标系。
我们是由代码生成的窗口中的内容默认都是集中在窗口的左上角。也就是左手坐标系的零点,如果我们想将代码生成的组件按照像素偏移可以使用move接口。
我们使用第5部分的代码继续进行演示。