- 博客(786)
- 资源 (20)
- 收藏
- 关注
原创 C++ Qt零基础入门进阶与企业级项目实战教程与学习方法分享
介绍Qt环境搭建、QtCreator / VS2019的基本使用方法,Qt整体架构、Qt信号机制,Qt内存管理等知识。
2023-09-21 23:00:33 2074
原创 go代码运行报错go_test3\main.go:14:2: package test3/mymath is not in std
在使用vscode运行go代码时报错。用goland应该不会有这种问题。
2024-05-01 13:57:02 179
原创 docker学习笔记4:CentOS7安装docker
docker的命令比较多,在后续博客继续介绍docker的相关命令。在centos终端中配置,执行上面提供的4条命令。点击控制台,找到【容器镜像服务】查看docker进程。
2024-04-30 02:35:06 185 1
原创 docker学习笔记3:VmWare CentOS7安装与静态ip配置
本专栏的docker环境是在centos7里安装,因此首先需要会安装centos虚拟机。本篇博客介绍如何在vm虚拟机里安装centos7。
2024-04-30 02:22:36 225 1
原创 docker学习笔记5:Docker Compose安装与使用
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它使用一个 YAML 文件来配置应用服务,这样可以通过一个简单的命令创建和启动所有服务。Docker Compose 主要面向开发环境、自动化测试环境和小型生产部署。
2024-04-29 23:23:25 109
原创 docker学习笔记8:centos docker安装redis
如果你有自定义的 Redis 配置文件,可以将其映射到容器中。首先,确保你的配置文件在宿主机上,例如这样可以让 Redis 使用你提供的配置文件启动。按照这些步骤,你可以在 CentOS 系统上利用 Docker 快速、轻松地部署 Redis。这些步骤主要适用于开发和测试环境;对于生产环境,还需要考虑额外的安全和性能配置。
2024-04-29 23:20:19 172 1
原创 docker学习笔记1:什么是docker
Docker 是一个开源的应用容器引擎,它允许开发者打包应用以及应用的运行环境到一个可移植的容器中,然后发布到任何支持 Docker 的平台上运行。这种打包方式称为容器化(Containerization)。容器化允许你在不同的环境中以一致的方式运行应用程序,解决了“在我的机器上可以运行”的问题。
2024-04-29 23:12:08 451
原创 python lambda表达式的用法
Python 中的 lambda 表达式是一种用于创建小型匿名函数的方式。这些函数是即时定义的,没有名字,可以用在任何需要函数的地方。lambda 函数可以有任意数量的参数,但只能有一个表达式。这个表达式的计算结果会被自动返回。lambda 表达式通常用于简单的函数,特别是在你需要传递一个小函数作为参数时非常有用。
2024-04-24 22:16:29 246
原创 C++ Qt QMainWindow实现无边框窗口自定义标题栏可拖拽移动拉伸改变窗口大小
QMainWindow相对于QWidget多了dockedwidget功能,跟多人可能更喜欢用QMainWindow做主窗口,如果不需要dockedwidget功能,QMainWindow与QWidget做主窗口基本无差别。这里使用的是DWM API实现窗口阴影和圆角,圆角是windows窗口的圆角,不需要手动设置圆角大小。(1)在CFramelessWindowBase类设置窗口标志,去掉窗口边框,设置最大最小显示效果。(3)重写nativeEvent实现无边框窗口。自带窗口阴影、圆角、可拉伸,拖拽。
2024-04-24 14:40:04 597
原创 C++如何把图片转成base64数据
在C++中将图片转换为Base64格式涉及几个步骤,主要是读取图片文件的二进制数据,然后将这些数据编码为Base64字符串。这个过程通常需要用到额外的库来辅助完成,例如使用开源库如OpenSSL来进行Base64编码,以及使用标准库来处理文件输入输出。运行程序之前,确保修改文件路径为实际图片文件的路径。这个程序将输出Base64编码的字符串,可用于网页显示或其他需要Base64编码的场景。首先,确保你的系统中安装了OpenSSL库。
2024-04-15 21:27:32 94
原创 C++实现读写锁
在C++中,实现读写锁可以使用,它是C++17标准中引入的。读写锁允许多个线程同时读取一个共享资源,但在写入时,只允许一个线程对资源进行写入,并阻止其他线程读取或写入。下面是使用实现读写锁的示例代码,包括一个简单的共享数据访问类和在mainSharedDatareadDatawriteDatamain替换和为你的文件名和希望生成的程序名。这段代码在一个多线程环境下测试了读写锁的工作方式。
2024-04-07 08:15:00 794
原创 PyQt PySide6零基础入门与项目实战视频教程
深入PySide6中的常用控件与界面布局技巧,通过丰富的实例,掌握PySide6的窗口、布局、控件等核心内容。主要介绍QLabel、QPushButton、QLineEdit、QCheckBox、QComboBox、QTextEdit、QTextBrowser、QListView与QListWidget、QStackedWidget、QTabWidget、QTableView等控件以及水平垂直布局,弹簧控件,栅格布局,表单布局。教你如何使用样式表美化应用界面,并创建独特的自定义控件。
2024-04-07 08:00:00 972
原创 C++手写链表、反转链表、删除链表节点、遍历、为链表增加迭代器
本篇博客介绍如何使用C++实现链表,首先编写一个简单的链表,然后增加模板,再增加迭代器。
2024-03-15 21:39:59 1235
原创 Python json解析
在Python中解析JSON(JavaScript Object Notation)非常简单,标准库中的json模块提供了必要的功能。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。
2024-02-12 11:54:16 821 1
原创 C# ICloneable的特点及其用法
在C#中,ICloneable是一个接口,用于定义允许一个对象创建自身的精确副本,即“克隆”的能力。ICloneableClone,该方法在实现时应该返回当前对象的一个副本。这里是ICloneable。
2024-02-12 11:53:42 501
原创 python异常与自定义异常
你还可以通过继承Exception类来定义自己的异常类型。这在需要创建特定于你的应用程序的错误类型时非常有用。passtry:e } ")e } ")现在让我们创建一个自定义异常。我们将定义一个和一个,这两个异常将在用户输入的数字不在指定范围内时抛出。# 自定义异常类pass # 可以添加额外的功能或属性pass # 可以添加额外的功能或属性# 我们的数字猜测游戏函数raise ValueTooSmallError("这个数字太小了。")
2024-01-31 13:31:34 671
原创 python循环控制if、 for、while、break、continue、pass
Python中的if语句是用于基于条件执行代码的控制流语句。它允许程序根据一个或多个条件的真假来决定执行哪个代码块。以下是ifif这里,如果x > 5的条件为真,则执行缩进的代码块。if-else如果if条件为真,则执行第一个代码块,否则执行else后的代码块。在这个例子中,如果x大于10,则执行第一个代码块,如果x大于5但不大于10,则执行第二个代码块,否则执行最后的else代码块。if这里首先检查x是否大于10,如果条件为真,则进入下一个if语句检查x是否是偶数。这是一个简洁的方式,用于在一行中执行。
2024-01-31 13:31:11 814
原创 go闭包使用教程
在Go语言中,闭包(Closure)是一种特殊的函数,它可以捕获其创建时所在作用域中的变量。闭包通常与匿名函数一起使用,匿名函数可以访问并操作不在其参数列表中的外部变量。
2024-01-27 09:44:22 1099
原创 C#设计模式教程(24):访问者模式
访问者模式是一种行为设计模式,它允许你在不修改已有类的情况下,增加新的操作。这是通过创建一个外部的访问者类来实现的,它实现了对组件类每一个具体元素的操作。
2024-01-25 08:15:00 122
原创 C#设计模式教程(23):模板方法模式
模板方法模式是一种行为设计模式,它定义了一个操作中的算法的骨架,将一些步骤延迟到子类中实现。这样可以在不改变算法结构的情况下,在子类中重新定义算法的某些特定步骤。
2024-01-25 07:30:00 142
原创 C#设计模式教程(22):策略模式
策略模式(Strategy Pattern)是一种行为设计模式,它定义了算法族,分别封装起来,让它们之间可以互相替换。策略模式让算法的变化独立于使用算法的客户。这种模式非常适合用于有多种运行算法的场景,在这些场景中,算法可能在运行时被选择或者切换。
2024-01-24 08:00:00 57
原创 C#设计模式教程(21):状态模式
状态模式(State Pattern)是一种行为设计模式,允许一个对象在其内部状态改变时改变其行为。这个对象看起来好像修改了它所属的类。状态模式主要用于实现状态机,在状态的逻辑复杂,状态数量较多,且状态转换规则较为明确的情况下,状态模式能够将各种状态的行为分离到不同的类中,提高可维护性。
2024-01-24 07:30:00 141
原创 C#设计模式教程(20):观察者模式
观察者模式(Observer Pattern)是一种常用的设计模式,允许一个对象(称为“观察者”)订阅另一个对象(称为“主题”或“可观察对象”)的状态变化,并在状态改变时得到通知。这种模式在实现事件处理系统、数据更新通知等场景中非常有用。
2024-01-24 07:15:00 422
原创 C#设计模式教程(19):备忘录模式
备忘录模式(Memento Pattern)是一种行为设计模式,允许在不暴露对象实现细节的情况下捕获并保存对象的当前状态,以便可以在未来的某个时刻恢复到这个状态。这种模式在进行需要撤销操作的应用程序时非常有用,比如文字处理器、游戏的保存和加载、数据库事务的回滚等。发起人(Originator):这是我们希望保存其状态的对象。备忘录(Memento):一个用于存储发起人状态的对象。负责人(Caretaker):负责保存备忘录,但不对备忘录的内容进行操作或检查。
2024-01-23 09:22:49 181
原创 C#设计模式教程(18):中介者模式
中介者模式(Mediator Pattern)是一种行为设计模式,它允许一组对象相互通信,而不需要知道彼此的内部结构。这样做可以降低多个对象和类之间的通信复杂性,将多对多的通信转变为一对多的通信,使得对象之间的耦合松散,并且可以更容易地独立地改变和复用这些对象。Mediator:定义了一个接口,用于与各个Colleague(同事)对象通信。:实现Mediator接口并协调各个Colleague对象之间的交互。Colleague。
2024-01-23 09:22:05 110
原创 C#设计模式教程(17):迭代器模式
迭代器模式(Iterator Pattern)是一种设计模式,用于提供一种方法顺序访问一个聚合对象中各个元素,而又无需暴露该对象的内部表示。迭代器模式把迭代的责任交给迭代器对象,而不是聚合对象,简化了聚合类。在C#中,迭代器模式通常是通过实现和接口来创建的。这种方法与C#的foreach循环和LINQ查询紧密集成。
2024-01-23 09:21:42 278
原创 C#设计模式教程(16):解释器模式
解释器模式是一种设计模式,用于定义一种语言的文法,并建立一个解释器来解释该语言中的句子。抽象表达式(Abstract Expression):定义解释操作的接口,通常是一个抽象类或接口。具体表达式(Concrete Expression):实现抽象表达式中定义的接口。每一种规则都对应于一个具体的表达式类。上下文(Context):包含解释器之外的一些全局信息。客户端(Client):构建(或被给定)一个特定的语言句子,然后解释这个句子。
2024-01-22 09:41:52 143
原创 C#设计模式教程(15):命令模式
命令模式(Command Pattern)是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求、队列或日志请求来参数化其他对象。同时支持可撤销操作。Command- 定义命令的接口。- 具体命令实现Command接口,定义了动作和接收者之间的绑定关系。Invoker- 请求的发送者,负责调用命令对象执行请求。Receiver- 接收者,执行与请求相关的操作。Client- 创建具体命令对象并设置其接收者。
2024-01-22 09:41:28 234
原创 C#设计模式教程(14):责任链模式
责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许多个对象处理一个请求,或者将这些对象连成一条链。在这条链上的每个对象会决定它能处理这个请求还是将其传递给链上的下一个对象。在C#中实现责任链模式,通常会有一个抽象处理者(Handler)角色,定义了一个处理请求的接口,以及一个或多个具体处理者(ConcreteHandler)角色,它们处理请求或将请求传递给链上的下一个处理者。
2024-01-22 09:41:02 61
原创 C#设计模式教程(13):代理模式
C#中的代理模式是一种结构型设计模式,它允许通过代理对象控制对另一个对象的访问。代理通常充当客户端和实际对象之间的中介,可以在访问实际对象前后执行一些额外的操作。代理模式有多种类型,其中包括虚拟代理、远程代理、保护代理等。
2024-01-21 15:36:52 141
原创 C#设计模式教程(12):享元模式
享元模式(Flyweight Pattern)是一种用于性能优化的设计模式,主要用于减少创建对象的数量,以减少内存占用和提高性能。这种模式特别适用于大量对象的情况,其中对象的大部分状态可以被外部化或共享。: 定义一个接口,声明那些可以被外部状态所影响的方法。: 实现Flyweight接口,并能接受并使用外部状态。: 负责创建和管理flyweight对象。当客户端请求一个flyweight时,Flyweight Factory对象提供一个已创建的实例或者创建一个(如果不存在的话)。Client。
2024-01-21 15:36:22 56
原创 C#设计模式教程(11):外观模式
外观模式(Facade Pattern)是一种常用的设计模式,其主要目的是提供一个统一的接口来访问子系统中的一群接口。外观模式定义了一个高层接口,让子系统更加容易使用。
2024-01-21 15:35:48 46
原创 C#设计模式教程(10):装饰器模式
装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许用户在不修改现有对象结构的情况下,动态地给一个对象添加额外的职责。这种模式创建了一个装饰类,用来包装原有的类。这种模式创建了一个装饰类,用于包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。组件接口(Component):定义一个对象接口,可以给这些对象动态地添加职责。具体组件(ConcreteComponent):定义了一个对象,可以给这个对象添加一些额外的职责。装饰抽象类(Decorator)
2024-01-20 13:55:12 298
原创 C#设计模式教程(9):组合模式
组合模式(Composite Pattern)是一种结构型设计模式,用于以树形结构表示部分整体层次。通过这种方式,客户端可以统一对待单个对象和组合对象。这种模式对于表示和管理层级结构非常有用。
2024-01-20 13:54:56 156
原创 C#设计模式教程(8):桥接模式
桥接模式(Bridge Pattern)是一种结构型设计模式,它的目的是将抽象部分与实现部分分离,使它们可以独立地变化。在桥接模式中,抽象部分通常定义高层的逻辑,而实现部分提供底层的操作,抽象部分通过一个引用关联到实现部分。这种分离的主要好处是可以独立地管理抽象和实现,这样当系统的一个部分改变时,不会影响到另一个部分。这种模式非常适合于在多个维度上变化的系统,例如,不同的界面(抽象)和多平台的支持(实现)。
2024-01-20 13:54:32 52
原创 C#设计模式教程(7):适配器模式
适配器模式(Adapter Pattern)是一种结构型设计模式,它允许不兼容的接口之间能够相互合作。适配器的作用是解决那些因接口不兼容而不能一起工作的类的问题,它通过包装一个类的接口转换成另一个期望的接口。
2024-01-19 23:04:57 236
原创 C#设计模式教程(6):原型模式(Prototype Pattern)
原型模式(Prototype Pattern)是一种创建型设计模式,其核心思想是通过复制现有对象来创建新对象,而不是通过实例化的方式。在C#中,这通常是通过实现ICloneable接口来完成的,该接口要求实现一个Clone方法,用于复制对象。
2024-01-19 23:04:36 366
C++ QMainWindow无边框窗口自定义标题栏可拖拽移动拉伸改变窗口大小
2024-04-23
Qt蓝牙串口源码支持十六进制发送、字符发送、定时发送
2022-02-22
c++ PImpl实现机制
2021-09-15
很全的 Qt qss
2020-09-29
jsoncpp_sdk_x64.rar
2020-04-06
支持向量机通俗导论(理解SVM的三层境界)PDF
2018-04-13
C# TCP网络通信示例:多人聊天发文件
2018-04-02
C++/OpenCV2.4.9 数字精确识别源码
2017-11-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人