Qt知识笔记(一)

Qt是一个跨平台的C++应用程序开发框架,以其丰富的API和模块化设计著名。它支持GUI和非GUI程序开发,拥有信号/槽机制简化组件间通信。窗口类如QWidget、QDialog和QMainWindow用于构建用户界面,而坐标体系和垃圾回收机制确保了高效内存管理。
摘要由CSDN通过智能技术生成

Qt概述

Qt是一个跨平台的 C++ 应用程序开发框架

具有短平快的优秀特质:投资少、周期短、见效快、效益高。
几乎支持所有的平台,可用于桌面程序开发以及嵌入式开发
有属于自己的事件处理机制
可以高效率地开发基于窗口的应用程序

Qt 是标准 C++ 的扩展,C++ 的语法在 Qt 中都是支持的

良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,可以快速上手
Qt 提供了一种称为 signals/slots 的安全类型来替代 callback(回调函数),这使得各个元件 之间的协同工作变得十分简单。

Qt特点

Qt广泛用于开发 GUI 程序,也可用于开发非 GUI 程序。

GUI = Graphical User Interface
也就是基于窗口的应用程序开发

有丰富的 API

Qt 包括多达 250 个以上的 C++ 类
可以处理正则表达式

支持 2D/3D 图形渲染,支持 OpenGL
Qt 给程序猿提供了非常详细的官方文档
支持 XML,Json
框架底层模块化, 使用者可以根据需求选择相应的模块来使用
可以轻松跨平台

和 Java 的跨平台方式不同
在不同的平台使用的是相同的上层接口,但是在底层封装了不同平台对应的 API

Qt模块

Qt的模块分为以下几类:
Qt基本模块: 提供了Qt在所有平台上的基本功能
Qt 附加模块: 实现一些特定功能的提供附加价值的模块
增值模块: 单独发布的提供额外价值的模块或工具。
技术预览模块: 一些处于开发阶段,但是可以作为技术预览使用的模块
Qt 工具: 帮助应用程序开发的一些工具。

Qt窗口类

Qt常用的窗口类有3个: QWidget,QDialog,QMainWindow
创建窗口的时候,需要继承它们中的其中一个。
QWidget: 是所有窗口类的基类,Qt 中的控件也属于窗口,基类都是 QWidget

可以内嵌到其他窗口中:没有边框
可以不内嵌单独显示:独立的窗口,有边框

QDialog: 对话框类,不能内嵌到其他窗口中
QMainWindow: 有工具栏,状态栏,菜单栏,

不能内嵌到其他窗口中

Qt窗口有内嵌和非内嵌窗口
内嵌窗口: 依附于一个大窗口,作为其一部分,成为其子窗口,父窗口显示的时候它就被显示
非内嵌窗口: 有边框,有标题栏,需要调用函数才能显示

坐标体系

Qt中窗口的位置是根据坐标确定的,所有的坐标都要先找到坐标原点,Qt的坐标原点就在左上角,其中x轴向右递增,y轴向下递增

相对坐标

Qt每个窗口都有自己的坐标原点,子窗口使用的坐标点就是父窗口坐标体系中的坐标点,也就是子窗口的位置是通过父窗口的原点确定的。
在这里插入图片描述

垃圾回收机制

Qt 引入对象树的概念,在一定程度上解决了内存问题。
当一个 QObject 对象在堆上创建的时候,Qt 会同时为其创建一个对象树。不过,对象树中对象的顺序是没有定义的。这意味着,销毁这些对象的顺序也是未定义的。
任何对象树中的 QObject 对象 delete 的时候,如果这个对象有 parent,则自动将其从 parent 的 children () 列表中删除;如果有孩子,则自动 delete 每一个孩子。Qt 保证没有 QObject 会被 delete 两次,这是由析构顺序决定的。
Qt中有垃圾回收机制,但不是所有被new出来的对象被自动回收,满足以下两个条件才可以回收

创建的对象必须是QObject类的子类或间接子类
创建出的类对象,必须指定其父对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值