QT——初识

目录

前言

1.创建一个QT项目

 2.查看生成的文件

3.打印一条hello world!

①使用控件实现

②使用代码实现

 4.Qt的编码格式

5.信号和槽

6.Qt中的坐标系


前言

QT是一款可跨平台的电脑客户端开发软件,本文将介绍一些有关QT使用的基础内容。


1.创建一个QT项目

图1        创建一个Qt项目

 2.查看生成的文件

图2        生成文件的主函数部分
图3        生成Widget文件的头文件部分
图4        生成的from file文件的头文件部分
图5        生成的form file文件

3.打印一条hello world!

①使用控件实现

图6        使用控件打印hello world

②使用代码实现

图7        使用代码实现打印hello world

需要注意的是,我们必须要使用new的方式在堆空间上创建一个Qlabel对象,因为如果在栈上创建这个类我们无法控制这个类合适释放,操作系统会自动为我们释放这个类,但是如果我们的类还没使用这个标签类的时候,这个类就已经释放了,我们就看不到结果了。此外由于我们将new出来的对象挂载到了对象树上,空间的释放无需我们进行操作,当该对象被使用完之后会由对象树自行释放。(关于对象树是什么将在之后的文章中进行介绍)。

验证:

首先向项目中添加一个C++文件,在该C++的源文件中定义一个Mylabel继承Qt中的QLabel类,而后在Mylabel类中的析构函数中添加打印信息来查看,new动态开辟的空间是否被自动释放,如果打印信息出现即意味着被释放,反之则没被释放。

图8        验证new动态创建的对象自动释放

 4.Qt的编码格式

我们将第3部分中的日志信息更改为中文,看看会发生什么。

图9        输出中文日志

我们不难发现在程序输出显示上的中文变为乱码,这是因为在C++中的默认字符集与Qt中的默认字符集是不同的所以对中文字符的解释出现了差异,进而表现出乱码。那么在Qt中如何解决由字符集引发的乱码问题呢?

图10        解决中文乱码问题

 我们可以使用Qt为我们提供的qDebug宏,在这个宏中封装了QDebug对象,qDebug可以当作cout使用但是不可以和endl等混用,qDebug还有一个好处就是当输出的信息过多时,我们不想打印这些信息的时候可以使用一个统一的开关直接将所有的输出信息,应为qDebug是一个宏所以比较好实现。

5.信号和槽

在Qt中有一个接口名为connect(),这个接口与网络中的接口名一致但是在功能上完全不同,在Qt中这个接口用于将信号和对应的处理方法相绑定。

这里我们使用“按钮”组件进行一个简单的示例演示,在按下按钮的时候可以做到文字变换的效果。

图11        connec使用示例       

6.Qt中的坐标系

 Qt中的坐标系不同于我们在数学上常见的右手坐标系,在Qt中采用的是左手坐标系。

图12        Qt中的坐标系

 我们是由代码生成的窗口中的内容默认都是集中在窗口的左上角。也就是左手坐标系的零点,如果我们想将代码生成的组件按照像素偏移可以使用move接口。

我们使用第5部分的代码继续进行演示。

图13        使用move接口偏移生成的按钮
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木鱼不是木鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值