Qt入门基础

目录

一 学习Qt的动机

二 创建第一个Qt程序

关于main.cpp

QApplication

Widget

 关于对象树

关于Widget常用的API

 

return a.exec()


 

 

一 学习Qt的动机

  我在学习了C++之后,想做图形化界面。实现前后端的交互。这时候就可以利用Qt进行编程。

二 创建第一个Qt程序

Qt文件是这样组织的(以Widget为例)

 

关于main.cpp

我们从这个程序出发,根据出现的内容来进行拓展式的讲解

 

QApplication

a是QApplication的一个对象,叫做应用程序对象。他有且仅有一个。传入的是命令行参数。

有什么用?通过解析命令行参数,来设置程序内部状态。说的通俗一点就是设置一些初始值。我们即使不写任何代码,程序也会自动有一个框框弹出,并且已经被默认设置好了一些参数。这个就是传递的命令行参数做到的。即使什么都不做都会弹出这个窗口。 

QApplication从底层窗口系统接收事件。(之后会讲到绑定再做解释)也就是说这个窗口是在最底层的,我们之后添加的一些空间对话框什么的都是在这个上层,可以理解成QApplication是一块画布,我们之后添加的东西就相当于在画布上画画。

Widget

w是Widget的一个对象。Widget是继承QObject之后的一个类

Qt中的一个体系结构是这样子的,也叫作对象树。对象树就是描述了Qt中继承关系的一个结构图。最顶层是QObject。

 关于对象树

Qt的一个优势是简化了内存回收机制,C++中对象被new出来就要去析构对象,如果没有进行析构的话,就可能出现内存泄漏的问题。但是Qt之所以会简化内存回收机制和这个对象树的关系很密切。

当创建的对象在堆区时候,如果指定的父亲是QObject派生下来的类或者QObject子类派生下来的类,可以不用管理释放的操作,将对象会放入到对象树中。

怎么理解这样的一句话?

QWidget是继承自QObject的,实现的时候有对应的构造函数和析构函数。构造的时候,是从基类往下构造的。也就是说先构造QObject再构造QWidget。析构的时候是从下往上析构的。当我们关闭窗口的时候,析构掉了最上层的对象,因此继承了最上层对象的对象自然而然也就被析构掉了。

就好比我们平时打开一个网页,如果把网页关闭了的话,基于网页存在的按钮啊,文本啊什么的就全部都不存在了。

关于Widget常用的API

Widget模块可以定义一些最基本的类,可以实现比如对窗口进行的一些操作:设定窗口大小啊,设定窗口标题啊;还可以添加一些小部件,比如按钮,也可以对按钮进行一些基本的操作。

在介绍这个功能之前,我们先来了解一下Qt中窗体的一个规定:

以最左上角为坐标原点,向下y依次增加,向右x依次增加

1 对窗体的操作

①设定窗口大小

 

这样我就得到了一个400×400大小的窗口了 。但是这个窗口是可以被拖动的。如果我们想设置固定的大小,就要使用setFixedSize了。当然,也可以只对x或者y进行设置,非常的灵活。

②设置窗口的标题

这样在最左上角就出现了对应文本的提示

②对按钮的操作

创建按钮

 要调用show方法才可以,要不然就看不到对应的按钮了。

但是我们发现,直接创建出来的按钮和窗体是分离的。因此,我们必须要进行绑定操作,将按钮绑定到窗口上。

 这里有两种绑定方式

按钮移动:move,参数传入对应移动的方向和距离。

设置文字:setText。

按钮如果直接创建的话,默认是在(0,0)位置创建,因此不做移动的话,后面的按钮会覆盖前面的按钮,我们需要移动一下。

 

return a.exec()

return a.exec() 让应用程序对象进入消息循环机制中,代码阻塞到当前行。说人话就是我们可以一直看到对应的窗口和上面的东西,除非我们手动退出。如果是C++中的return 0的话,窗体就一闪而过,什么都没有了

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值