自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 QT 欧姆龙 fins协议 上位机程序

一个根据欧姆龙的FINS协议制作的上位机读取程序

2024-05-30 22:38:27 599

原创 QT 桌面代办软件(仿滴答清单界面)

一个开源的QT 桌面代办软件(仿滴答清单界面)

2024-05-30 22:28:12 423

原创 C++ QT设计模式总结

Ciallo~(∠・ω< )⌒★,

2024-05-15 22:49:31 1478

原创 qmake、CMake、make和Makefile

Makefile是一种文本文件,通常用于定义和管理软件项目的构建过程。其和 shell 脚本类似,但其至少包含如下信息:CMake 是一个跨平台的开源工具,用于自动生成用于构建项目的Makefile或其他构建系统的配置文件。 CMake 使用 CMakeLists.txt 作为工程文件,来描述项目的构建过程,包括指定源文件、依赖关系、编译选项等。CMake 和 qmake 只是生成 makefile 文件的两种不同的方式,而 make 才是真正通过 makefile 来构建项目的工具,如图:

2024-05-15 18:49:43 546

原创 C++ QT设计模式:解释器模式

定义了解释器的接口,通常包括一个 interpret() 方法,用于解释语言中的表达式。

2024-05-14 16:39:17 368

原创 C++ QT设计模式:原型模式

原型模式是一种设计模式,允许通过复制现有对象来创建新对象,而不是通过使用构造函数。定义一个抽象接口,规定了具体原型对象必须实现的方法。实现了原型接口的具体原型对象,通过复制自身来创建新对象。使用原型对象的客户端,通过复制原型对象来创建新对象。

2024-05-14 16:31:50 318

原创 C++ QT设计模式:迭代器模式

迭代器模式(Iterator Pattern)是一种设计模式,提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。迭代器模式将遍历元素的责任封装到一个独立的迭代器对象中,使得聚合对象和遍历算法分离开来。:定义了访问和遍历元素的接口。:实现了 Iterator接口,具体定义了如何实现遍历算法。:定义创建迭代器对象的接口。:实现了聚合器接口,具体定义了 Aggregate 创建相应迭代器对象的逻辑。

2024-05-13 22:26:43 360

原创 C++ QT设计模式:责任链模式

责任链模式(Chain of Responsibility Pattern)是一种设计模式,将请求沿着处理链传递,直到有一个对象能够处理为止。

2024-05-13 17:26:21 673

原创 C++ QT设计模式:访问者模式

访问者模式(Visitor Pattern)是一种设计模式,它允许你在不改变被访问类的前提下,定义对其进行操作的新操作。(访问者):声明了对不同 Element 的访问方法。

2024-05-10 16:50:05 376

原创 C++ QT设计模式:中介者模式

中介者模式(Mediator Pattern)是一种设计模式,它允许你减少对象之间的直接通信,将它们的交互封装在一个中介对象中,从而降低了对象之间的耦合度。中介者模式是将对象之间的通信转移到一个中介对象中,使得对象之间不需要直接相互引用,而是通过中介者进行通信。这样做可以简化对象之间的关系,使得系统更加灵活和可维护。(中介者):定义了一个接口,用于与各个同事对象进行通信。(具体中介者):实现了中介者接口,负责实际的中介逻辑。(同事):定义了一个接口,用于与中介者进行通信。同事对象之间不直接通信。

2024-05-10 10:00:23 1010

原创 C++ QT设计模式:备忘录模式

备忘录模式(Memento Pattern)是一种行为型设计模式,它允许在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便之后恢复对象到先前的状态。实现的模块有:Originator(发起者):需要被备忘的对象,负责创建 Memento 和从 Memento 中恢复状态的接口。Memento(备忘录):存储 Originator 对象的内部状态,通常只允许 Originator 访问。Caretaker(负责人):负责保存备忘录对象,但不对备忘录的内容进行操作。

2024-05-09 15:31:49 435

原创 C++ QT设计模式:状态模式

状态模式(State Pattern)是一种设计模式,它将各个状态封装成单独的类,然后根据这些状态改变执行不同的行为,实现状态与行为的分离。实现的模块有:Context(环境):维护一个具体状态对象的实例,并将请求委托给相应的状态对象来处理。State(状态):定义了一个与 Context 的状态相关的接口。ConcreteState(具体状态):实现了 State 接口,定义了在某个特定状态下要执行的行为。

2024-05-09 11:41:11 638

原创 QT设计模式:策略模式

策略模式(Strategy Pattern)是一种设计模式,它定义了一系列方法,并使它们可以相互替换。策略模式使得算法可以独立于客户端而变化,使得客户端可以根据需要选择相应的算法。(环境):负责维护一个对 Strategy 对象的引用,并将客户端的请求委托给 Strategy 对象执行。可以定义一个接口来让 Strategy 对象访问它的数据。(策略):定义了所有支持的方法的公共接口。(具体策略):实现了Strategy接口的具体算法。

2024-05-09 09:46:31 561

原创 QT设计模式:模板模式

用于实现套接字通信的基类,派生 QAbstractSocket 可以实现具体的网络套接字,如 QTcpSocket、QUdpSocket。:也是用于实现自定义的数据模型,派生 QAbstractItemModel 可以实现树形结构、表格结构等各种数据模型。:是所有按钮控件的抽象基类,它定义了按钮的基本行为和信号,派生类有 QPushButton、QCheckBox、QRadioButton 等。

2024-05-09 08:35:13 670

原创 QT设计模式:代理模式

代理模式(Proxy Pattern)是一种设计模式,它允许你提供一个代理对象,以控制对其他对象的访问。代理通常在客户端和实际对象之间充当,用于控制对实际对象的访问(如登录控制),以提供额外的功能(如缓存),或者在访问实际对象之前进行一些预处理(如延迟加载)。(主题):定义了RealSubject和Proxy的共同接口,客户端通过这个接口访问RealSubject和Proxy。(真实主题):定义了实际的业务逻辑,Proxy代理了它。

2024-05-08 19:55:48 791 1

原创 QT设计模式:适配器模式

适配器模式(Adapter Pattern)是一种设计模式,允许将一个类的接口转换成客户端所期望的另一个接口,可以让原本由于接口不兼容而不能一起工作的类能够一起工作。

2024-05-08 17:26:01 838

原创 QT设计模式:外观模式

外观模式(Facade Pattern)是一种设计模式,它提供了一个统一的接口,用于访问子系统中的一群接口,从而简化了客户端与子系统之间的交互,这种方式隐藏了子系统的复杂性,使客户端更容易使用子系统。

2024-05-07 17:33:22 438

原创 QT设计模式:装饰器模式

装饰器模式(Decorator Pattern)是一种设计模式,它允许向现有对象添加新功能,又不改变其结构。通过将对象放入包装器中,然后用装饰器对象包裹原始对象,以提供额外的功能。

2024-05-07 17:01:26 696 1

原创 QT设计模式:桥接模式

桥接模式是一种结构型设计模式,它将抽象部分与它的实现部分分离,使得它们可以独立地变化,而不会相互影响。其中,抽象部分和实现部分通过一个桥接接口将它们连接起来,当程序需要实现新的抽象类和实现类时,只需要继承并扩展原来的抽象类和实现类。可以理解为抽象部分和实现部分直接实现了一座“桥”,扩展抽象类和具体实现类可以通过这座“桥”来进行连接,而不需要在每一个具体实现类和扩展抽象类直接建立一座“桥”。

2024-05-06 17:39:02 817 1

原创 QT设计模式:建造者模式

建造者模式是一种设计模式,它允许你创建复杂对象的过程独立于该对象的组成部分以及它们的组装方式。这样可以构造出不同的对象表示。在建造者模式中,将创建对象的过程和对象的表示分离,通过一步步的构建,可以得到不同的对象。

2024-05-06 15:41:05 731 1

原创 QT设计模式:抽象工厂模式

例如。

2024-05-05 15:22:22 805 1

原创 QT设计模式:工厂模式

工厂模式是一种设计模式,用于将对象的创建逻辑与使用者分离,以实现对象的创建和使用的解耦。工厂模式提供了一个统一的接口来创建对象,而客户端代码只需通过该接口来请求所需的对象,而不需要知道具体的对象创建细节。

2024-05-05 14:10:16 1155

原创 QT设计模式:享元模式

享元模式(Flyweight Pattern)是一种结构型设计模式,用于减少对象的内存使用和提高性能。享元模式通过用一个轻量级封装器wrapper 来在多个对象之间共享相同的状态,可以减少对象的数量。

2024-05-04 10:06:41 674 1

原创 QT设计模式:单例模式

单例模式是一种,是最常见、最简单的设计模式之一。单例模式保证一个类在程序中只有一个实例,并提供一个全局访问点。

2024-04-29 15:50:00 592 1

原创 QT:命名规范

在大多数QT程序中使用的编码风格并非纯C++,而是一种宏与预处理技巧相结合的风格,比起C++来说,风格更类似于Java和Python。为了更充分地利用Qt 的强大功能和使用简单的特性,我们倾向于完全放弃标准库。

2024-04-29 14:11:27 393

原创 QT设计模式:命令模式

命令模式(Command Pattern)是一种行为设计模式,它通过将请求封装为具有公共接口的对象,从而允许将请求参数化、队列化、保存和执行。

2024-04-29 09:12:31 456

原创 QT .pro工程文件模板详解

【代码】QT .pro工程文件模板详解。

2024-04-28 10:10:01 279

原创 QT设计模式:观察者模式

观察者模式(Observer Pattern)是一种行为设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象状态发生变化时,会通知所有的观察者对象,使它们能够自动更新自己的状态。

2024-04-27 17:12:21 812

原创 QT设计模式:组合模式(QObject对象树)

组合模式是一种设计模式,是将对象组合成树形结构以表示"部分-整体"的层次结构。以便于使用简单的部分来创建复杂的对象。

2024-04-27 14:51:49 876

原创 QT:指针容器的使用

QList基类指针可以包含派生对象的地址。这样, 基类指针的容器就能够包含任何派生对象的地址。进而,多态使得在运行时能够通过这些指针调用合适的函数。

2024-04-27 11:07:43 231

原创 为什么在C++中应该避免使用数组?

程序员有责任确保在所有可能的情况下当数组销毁时都要正确地释放内存。编译器和运行时系统都不会检查数组下标是否位于正确的范围之内。预分配或追加元素都是费时的操作(在运行时和开发时都是如此)。数组的大小可以是固定不变的,或者必须使用堆中的动态内存。在C语言这样的编程语言中,最基本的方法就是使用数组。使用数组的程序员有责任编写额外的范围检查代码。在 C++ 中,使用如 std::vector。只要有可能,就应当使用列表而不是数组。在 Qt 中,使用 如 QList。等,来代替原始数组。等,来代替原始数组。

2024-04-27 10:18:30 259

原创 QT中使用字符串的三种方式

的接口,或者极少的其他情况。它经常是应当避免的运行时错误的来源。中的字符串类型,因为它有丰富的。任何地方都可以使用这种类型。风格的字符串,主要用于与C语。

2024-04-27 09:14:24 156

原创 QTpro工程文件:常见qt模块

以下为常见的QT模块及其功能。

2024-04-26 16:15:45 226 1

原创 C++ QT设计模式:库与设计模式

库(lib)是一个文件,它包含一个或者多个编译后文件(称为目标文件),并对其进行了索引,以便连接器能更容易地找到符号以及它们的定义。

2024-04-25 17:05:27 301 1

原创 QByteArray 和 QString 的相互转换总结

QByteArray:用于处理字节数组,即二进制数据,常用于网络和串口协议。QString:用于处理Unicode字符串,常用于文本文件。

2024-02-02 10:43:07 2285

原创 QT中如何修改QMap中的嵌套QMap

如题,现在假设有一个这样的QMap。

2024-02-02 09:17:13 596

原创 QT怎么让模型数据在视图中用自定义组件显示?(通过重写委托中的paint函数)

在QT使用模型视图时,模型中的数据一般会以文字的形式展现,但是如果我想以其他的形式显示,应该用什么方法呢?

2024-01-18 17:28:30 686 3

原创 QT在触摸屏上如何实现按键长按功能?

要使用按钮的长按功能,想当然的会想到使用pressed和released信号,在按钮按下和释放的时候发出一个信号。但是我在surface的win10上使用时,长按时按钮似乎不能被按下,只有在点按时可以按下,但是这样pressed和released信号都会马上被触发,起不到长按的效果。

2024-01-02 18:42:32 1972 4

原创 QT怎么开发插件?(附官方实例解析)

QT中的插件开发分为两种:1、扩展QT本身的插件2、扩展QT应用程序的插件,本文描述的插件为后者。打开QT的官方插件例子Echo Plugin Example,可以看到项目中有两个子项目:其中plugin是例子中的插件,echopluginwindow是调用插件的程序。

2023-12-28 20:04:07 759 1

原创 QT中为什么负数会大于正数?(记一次有符号整数和无符号整数之间的比较发生的错误)

后面查了半天,发现一个定义为INT64,一个是UINT64,在和无符号整数进行比较时,有符号整数会进行隐式转换变成无符号整数,-20将被转换为18446744073709551596,表达式自然就成立了。-20的值居然可以大于32768。

2023-12-27 15:55:14 446 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除