- 博客(41)
- 收藏
- 关注
原创 行为型模式之观察者模式
1、观察着模式:定义对象之间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象都得到通知并自动更新。2、发生改变的对象称为观察目标,被通知的对象称为观察者3、一个观察目标可以对应多个观察者4、别名:发布-订阅模式、模型-视图模式、源-监听器模式、从属者模式观察者模式包含以个下4个角色:Subject(目标)ConcreteSubject(具体目标)Observer(观察者)ConcreteObserver(具体观察者)2、实现具体的观察者(ConcreteObserver)
2024-08-26 19:38:07 503
原创 设计模式之行为型模式
1、,研究系统在运行时对象之间的相互通信与协作,进一步明确对象的职责,还重点关注它们之间的使用继承关心在几个类之间分配行为,主要通过多态等方式来分配父类与子类的职责4、对象行为模式:使用对象的来分配行为,主要通。
2024-08-26 19:06:17 376
原创 结构型模式之组合模式
1、定义:组合多个对象形成以表示具有的层次结构2、组合模式让客户端对待单个对象和组合对象3、组合模式又称为部分-整体模式4、将对象组织到树形结构中,可以用来描述整体与部分的关系。
2024-08-22 20:48:13 644
原创 结构型模式之外观模式
1、定义:为子系统的,外观模式定义了一个,这个接口使得这一子系统更加容易使用2、外观模式又称为,是的一种具体实现3、通过来,同时降低客户类与子系统的耦合度。
2024-08-19 17:04:58 434
原创 设计模式之结构型模式
1、结构型模式:关注如何将形成更加强大的结构2、不同的结构型模式从,它们在尽可能满足各种面向对象设计原则的同时为类或对象提供一系列的解决方案,由多个类组合成一个强大的系统,在类结构型模式中一般只存在继承关系和实现关系,通过关联关系,在一个类中定义另一个类的实例对象,然后通过该对象调用相应的方法。
2024-08-17 14:08:17 377
原创 创建型模式之原型模式
1、工作原理:将一个原型对象传给要发动创建的对象(即客户端对象),这个要发动创建的对象2、通过克隆方法所创建的对象是,它们在内存中拥有新的地址,每一个克隆对象都是的3、核心思想:是通过复制现有对象的原型来创建对象,而不是通过实例化来创建对象。
2024-02-28 16:17:02 548
原创 C++ static关键字
一般情况下,对于,并且局部的生命周期在包含语句块执行结束时便结束了。但是如果用。但是需要注意的是,虽然用static对局部变量进行修饰之后,其生命周期以及存储空间发生了变化,。
2024-02-23 17:45:16 349
原创 QT QString和QStringLiteral的区别
1、QStringLiteral是,用于在。它的主要作用是。2、使用QStringLiteral宏可以避免在运行时创建QString对象,这对于在使用大量字符串字面值的情况下,特别是频繁创建临时QString对象时,能够提升程序的性能。
2024-02-23 10:29:21 1729
原创 C++ 左值引用和右值引用
1、引用是别名2、声明时必须初始化3、通过引用修改变量4、引用的本质是指针常量三、区分左值和右值1、左值可以在等号左边,能够取地址,具名;比如变量名、返回左值引用的函数调用、前置自增/自减、赋值运算符、解引用等2、右值只能在等号右边,不能取地址,不具名;右值分为纯右值和将亡值,纯右值比如字面值、返回非引用类型的函数调用、后置自增/自减等1、将亡值是C++11引入的一种新的引用类型,用于支持移动语义的实现;2、在C++中,表达式具有值的属性,可以分为左值和右值。
2024-02-02 15:40:30 1519
原创 创建型模式之单例模式
1、单例模式:确保一个类只有,并提供一个来访问这个唯一实例2、要点:(1)某个类只有一个实例(2)必须这个实例(3)必须自行向整个系统提供这个实例,也就是。
2024-01-30 14:20:50 625
原创 创建型模式之抽象工厂模式
1、抽象工厂模式:提供一个,而无需指定它们具体的类。2、抽象工厂模式:一个工厂可,极大减少了工厂类的数量3、抽象工厂模式:是4、抽象工厂模式:中的具体工厂不只是创建一种产品,它负责创建一族产品。
2023-12-18 10:01:14 594
原创 创建型模式之简单工厂模式
(1)简单工厂模式并不是一个标准的设计模式,但是它太常用了,简单而又神奇(2)在简单工厂模式中用于创建实例的方法通常是静态方法,因此又被称为静态工厂方法模式(3)要点:如果需要什么,只需传入一个正确的参数,就可以获取所需要的对象,而无需知道其创建细节定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建者的实例通常都具有共同的父类。
2023-12-15 09:55:32 450
原创 设计模式之创建型模式
1、创建型模式关注对象的创建过程2、创建型模式对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离,对用户隐藏了类的实例创建细节3、创建型模式描述如何将对象的创建和使用分类,让用户在使用对象时无需关心对象的创建细节,从而降低系统的耦合度,让设计方案更易于修改和扩展。
2023-12-13 10:16:37 387
原创 QT QIFW Windows下制作安装包(一)
1、QIFW。QIFW是QT Installer FrameWork的缩写,。QIFW可以帮助开发者创建自己的安装程序,将它们打包到通用的安装包中,并提供可视化的界面进行安装。2、QIFW官网文档Qt Installer Framework概述 |Qt Installer Framework手册3、QIFW下装地址。
2023-12-12 14:54:02 2847 1
原创 什么是设计模式
1、设计模式是解决某些问题的办法2、设计模式不是凭空想象出来的,是经验的总结和积累3、设计模式是不断的发展的4、各个行业都有自己的设计模式。
2023-12-12 10:12:55 642
原创 QT Windos平台下打包应用程序
它可以通过扫描应用程序的依赖项获取所需的 Qt 库文件、插件和翻译文件,以及复制应用程序可执行文件和所需的依赖项到指定目录。
2023-12-07 16:30:10 918
原创 QT QGraphicsItem 图元覆盖导致鼠标点击事件不能传递到被覆盖图元
在日常开发中,遇到这样一个问题,线图元和引脚图元重叠,导致点击引脚图元,没有进入引脚图元的鼠标点击事件中。
2023-11-30 14:31:22 1696 2
原创 QT QComBox实现模糊查询
它可以与诸如 QListView、QTableView、QTreeView 等控件一起使用,用于自定义项的外观和编辑行为。(2)QStyledItemDelegate 的。
2023-11-25 23:15:00 1753
原创 QT QGraphicsView框架
将QGraphicsView比作一台手机,那么QGraphicsScene相对于手机里面的app,比如是音乐播放器的话,那么QGraphicsItem就是里面的歌曲,在复杂点的话,就可以是播放器里面的一切,不单单是歌曲,如播放、暂停按钮、歌词、歌手海报啥的。
2023-11-24 11:05:28 2032 1
原创 QT QDebug和QRelease的区别
总结起来,QDebug是用于调试阶段的模式,会输出调试信息;而QRelease是用于发布阶段的模式,它会进行优化,不输出调试信息,以提高程序性能。在开发过程中,通常会先使用QDebug进行调试,确认程序的正确性,然后进行切换到QRelease进行发布。
2023-11-23 09:49:48 1573
原创 QT 事件(一)
因为,所以说我们对窗口进行操作,它多多少少都会产生对应的事件,那么说这个事件是怎么产生的?比如我们对窗口进行大小的变化,或者说鼠标拖到窗口进行移动,拿着鼠标或者键盘在窗口里进行相关的操作,比如说鼠标或者键盘这个按键被按下了、这个按键被释放了,对应的事件就产生了,当这个事件产生之后呢,窗口就需要对这个事件进行处理。因为,咱们这个鼠标或者键盘在哪一个,那么。
2023-11-19 20:41:06 235 1
原创 QT 影子构建和非影子构建的区别
Qt非常推荐使用影子构建。总的来说,Qt影子构建和非影子构建的区别只是目标文件的位置不同,但影响却非常的。正确配置构建环境可以大大降低维护成本,提高项目的灵活性和可维护形。这种方式的好处是使得项目管理更加清晰,避免污染源代码目录,并能够更加方便地进行项目构建和测试。,同时产生一些额外的问题,比如可能导致意外覆盖或者删除某些源文件等等。在影子构建中,Qt会将生成的目标文件放到一个。,这个目录通常被称为“构建目录”,Qt的影子构建和非影子构建的。相反,在非影子构建中,
2023-11-15 20:43:31 395
原创 C++ 程序编译过程
汇编程序生成的目标文件,即.o文件,并不会立即执行,因为可能出现.cpp文件中的函数引用了另一个.cpp文件中定义的符合或者调用了某个库文件中的函数。将源代码中的预处理指令(如#include、#define等)处理后生成新的代码文件,同时生成一个名为“编译指令”的文件。汇编器依赖符号表中的信息来处理变量名和函数名,并将它们转化成地址。编译器进行语法分析、语义分析等操作并且产生符号表。
2023-11-11 20:08:31 352 1
原创 QT 动态库编程(一)
动态库是指在程序运行时才被载入内存的库,与静态库相比,动态库可以减小程序的体积,同时也方便库的升级和维护。是 Qt 提供的宏,可以用于在编写动态库时标识需要导出的函数、类、变量等。简单来说,使用宏标识的函数、类、变量等可以被其他程序或模块使用。
2023-11-07 22:15:34 621
原创 C++ 多态
1、当一个类中包含有虚函数时,编译器会给该函数生成一个虚函数表,保存该类中虚函数的地址,通过,派生类继承基类,也会继承基类的虚函数,所以编译器也会为派生类生成一个虚函数表。1、C++的多态分为静态多态和动态多态。动态多态是指子类重写虚函数来实现的,因为是在运行期间决定函数调用的,所以称为动态多态,比如重写。C++多态的表象,在基类的函数前加上virtual关键字,在派生类重写该函数,运行时根据对象的实际类型来调用相应的函数,如果对象类型时派生类,则调用派生类的函数,如果是基类,则调用基类的函数。
2023-11-06 14:31:54 50
原创 QT 元对象系统
1、QT对标准C++进行了扩展,引入了一些新的概念,比如信号槽,对象属性等。QT的元对象编译器(Meta-Object-Compiler,MOC是一个预处理器在源程序(.cpp)编译前,先将这些QT特性转换为C++兼容的形式,然后再用C++编译器进行编译。这就是为什么在使用信号槽机制的类里,必须在头文件中添加一个Q_OBJECT宏的原因,只有添加了这个宏·,moc才对类里的信号槽进行预处理。
2023-11-05 00:10:27 221
原创 C++11 std::function
std::function是C++11中的一个模板类,它是一种可调用对象的封装器,可以将各种可调用对象(如函数、函数指针、函数对象、lambda表达式)作为参数类型,并将他们存储在对象内部,从而实现对这些可调用对象的封装和管理。
2023-11-02 15:18:04 500 1
原创 QT 信号与槽(一)
信号与槽是QT框架给我们提供的一种事件处理机制,QT框架是基于窗口的这样一个应用程序框架,基于窗口的应用程序都是基于事件的,也就意味着咱们这个信号其实对应的就是事件槽就是对应事件的处理动作,信号与槽就类似于设计模式里的观察者模式。
2023-11-01 21:01:53 187
原创 Qt qmake的时候报错 error: /utf-8: No such file or directory
【代码】【无标题】Qt qmake的时候报错 error: /utf-8: No such file or directory。
2023-11-01 14:20:04 904
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人