19.QT-事件发送函数sendEvent()、postEvent()

Qt发送事件分为两种 -阻塞型事件发送 需要重写接收对象的event()事件处理函数 当事件发送后,将会立即进入event()事件处理函数进行事件处理 通过sendEvent()静态函数实现阻塞发送: sendEvent()函数是阻塞式的,所以支持栈空间/堆空间事件对象的发送(局部对象和new分配的 ... »

17.QT-事件处理分析、事件过滤器、拖放事件

Qt事件处理介绍 Qt平台会将系统产生的消息转换为Qt事件 Qt事件是一个QEvent的对象 Qt事件用来描述程序内部或外部发生的动作 任意的QObject对象都具备事件处理的能力 Qt常见的事件继承图如下: QInputEvent:用户输入事件 QDropEvent:用户拖放事件 QPaintEv ... »

13.QT-QMainWindow组件使用

QMainWindow介绍 主窗口是与用户进行长时间交互的顶层窗口,比如记事本 主窗口通常是应用程序启动后显示的第一个窗口 QMainWindow是Qt中主窗口的基类,继承于QWidget,如下图所示: QMainWindow和其它类不同,如下图所示: QMainWindow组件布局 1.菜单栏 Q ... »

11.QT-布局管理器(Box,Grid,Form,Stacked)

布局管理器简介 QT中提供了对界面组件进行布局管理的类,用于对界面组件进行管理, 能够自动排列窗口中的界面组件 窗口大小变化后,便会自动更新界面组件的大小。 布局管理器可以自定义,从而达到更加个性化界面布局的效果 布局管理器可以相互嵌套,完成所有常用的界面布局 QLayout是Qt中布局管理器的抽象 ... »

9.QT-标准对话框

Qt提供的可复用的标准对话框,全部继承自QDialog类,如下图所示: QMessageBox:信息对话框,用于显示信息、询问问题等; QFileDialog:文件对话框 QColorDialog:颜色对话框 QInputDialog:输入对话框(允许用户输入一次数据) QFontDialog:字体 ... »

8.QT-对话框(模态与非模态)

对话框介绍 对话框是于用户进行简易交互的顶层窗口 QDialog是Qt中所有对话框窗口的父类,是一种容器类型的组件 QDialog继承于QWidget类,如下图所示: QWidget和QDialog有什么不同 QDialog: QDialog是定制了窗口式样的特殊的QWidget QDialog只能 ... »

6.QT-简易计算器实现(详解)

1.用户界面类设计 需要使用QWidget组件作为顶层窗口,QLineEdit组件作为输入框,QPsuhButton作为按钮 1.1 在代码里处理按键消息时,需要处理下用户输入的格式(方便逻辑模块计算) 1)匹配括号成对出现,左括号必然先于右括号出现 当有左括号出现时,则status++ 当有右括号 ... »

QT-第一个程序 Hello QT , 以及QT creator介绍

第一个程序 - Hello QT 首先写main.cpp: win平台上,命令行编译 进入main.cpp所在目录“1.Hello QT”,输入: 接下来,进入debug文件,运行1.exe: 如果想删除配置: linux平台上,命令行编译 同样输入: 运行: 3.使用Qt creator编译 注意 ... »

STM32-正弦波可调(50HZ~20KHZ可调、峰峰值0~3.3V可调)

原理: 通过定时器每隔一段时间触发一次DAC转换,然后通过DMA发送正玄波码表值给DAC. 当需要改变频率HZ时,只需要修改定时器频率即可(最高只能达到20KHz) 当需要改变正玄波的正峰峰值/负峰峰值时,只需要修改正玄波码表即可 实现 代码如下所示(采用的是定时器2,DAC引脚是PA4) 然后在m ... »

28.C++- 单例类模板(详解)

单例类 描述 指在整个系统生命期中,一个类最多只能有一个实例(instance)存在,使得该实例的唯一性(实例是指一个对象指针) , 比如:统计在线人数 在单例类里,又分为了懒汉式和饿汉式,它们的区别在于创建实例的时间不同: 懒汉式 : 指代码运行后,实例并不存在,只有当需要时,才去创建实例(适用于 ... »

27.C++- 智能指针

智能指针 在C++库中最重要的类模板之一 智能指针实际上是将指针封装在一个类里,通过对象来管理指针. STL中的智能指针auto_ptr 头文件: <memory> 生命周期结束时,自动摧毁指向的内存空间 不能指向堆数组(因为auto_ptr的析构函数删除指针用的是delete,而不是delete[ ... »

25.C++- 泛型编程之函数模板(详解)

本章学习: 1)初探函数模板 2)深入理解函数模板 3)多参函数模板 4)重载函数和函数模板 当我们想写个Swap()交换函数时,通常这样写: 但是这个函数仅仅只能支持int类型,如果我们想实现交换double,float,string等等时,就还需要从新去构造Swap()重载函数,这样不但重复劳动 ... »

24.C++- 抽象类(存虚函数)、接口、多重继承

抽象类和接口 什么是抽象类 用来表示现实世界中的抽象概念 是一种只能定义类型,而不能产生对象的类 只能被子类继承,且抽象类的相关成员函数没有完整的体现,用来被子类重写. 比如图形(Shape)类, 就是一个抽象的概念,因为我们无法计算这个“图形”的面积,所以它的成员函数area()是空的。 而继承它 ... »

22.C++- 继承与组合,protected访问级别

在C++里,通过继承和组合实现了代码复用,使得开发效率提高,并且能够通过代码看到事物的关系 组合比继承简单,所以在写代码时先考虑能否组合,再来考虑继承. 组合的特点 将其它类的对象作为当前类的成员使用 比如主机类,拥有 CPU/主板/内存/硬盘这4个对象成员,而这4个对象成员并没有继承主机类的特性和 ... »

LeetCode-391. 完美矩形(使用C语言编译,详解)

链接:https://leetcode-cn.com/problems/perfect-rectangle/description/ 题目 我们有 N 个与坐标轴对齐的矩形, 其中 N > 0, 判断它们是否能精确地覆盖一个矩形区域。 每个矩形用左下角的点和右上角的点的坐标来表示。例如, 一个单位正 ... »

LeetCode-101.对称二叉树

链接:https://leetcode-cn.com/problems/symmetric-tree/description/ 给定一个二叉树,检查它是否是它自己的镜像(即,围绕它的中心对称)。 例如,这个二叉树 [1,2,2,3,4,4,3] 是对称的。 但是下面这个 [1,2,2,null,3, ... »