自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

世界需要程序员,而我就是其中一员!

专注于Qt技术的传播与讲授!

  • 博客(170)
  • 收藏
  • 关注

原创 配置处理工具类

【代码】配置处理工具类。

2024-03-18 12:11:03 215

原创 组合模式-C#实现

组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。意图:将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。主要解决:它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。何时使用: 1、您想表示对象的部分-整体层次结构(树形结构)

2024-03-13 11:21:29 659

原创 状态者模式-C#实现

状态模式将每种状态对应的行为抽象出来成为单独新的对象,这样状态的变化不再依赖于对象内部的行为。状态模式——允许一个对象在其内部状态改变时自动改变其行为,对象看起来就像是改变了它的类。意图:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。何时使用:代码中包含大量与对象状态有关的条件语句。如何解决:将各种具体的状态类抽象出来。关键代码:通常命令模式的接口中只有一个方法。

2024-03-13 11:17:27 811

原创 装饰者模式-C#实现

可以使用装饰者模式来动态地给一个对象添加额外的职责。装饰者模式以对客户透明的方式动态地给一个对象附加上更多的责任,装饰者模式相比生成子类可以更灵活地增加功能。在装饰者模式中各个角色有:抽象构件(Phone)角色:给出一个抽象接口,以规范准备接受附加责任的对象。具体构件(AppPhone)角色:定义一个将要接收附加责任的类。装饰(Dicorator)角色:持有一个构件(Component)对象的实例,并定义一个与抽象构件接口一致的接口。

2024-03-13 11:13:15 409

原创 中介者模式-C#实现

中介者模式,定义了一个中介对象来封装一系列对象之间的交互关系。中介者使各个对象之间不需要显式地相互引用,从而使耦合性降低,而且可以独立地改变它们之间的交互行为。中介者模式设计两个具体对象,一个是用户类,另一个是中介者类;根据针对接口编程原则,则需要把这两类角色进行抽象,所以中介者模式中就有了4类角色,它们分别是:1,抽象中介者角色,2,具体中介者角色、3,抽象同事类,4,具体同事类。中介者类是起到协调各个对象的作用,则抽象中介者角色中则需要保存各个对象的引用。

2024-03-13 11:08:26 268

原创 责任链模式-C#实现

责任链模式指的是——某个请求需要多个对象进行处理,从而避免请求的发送者和接收之间的耦合关系。将这些对象连成一条链子,并沿着这条链子传递该请求,直到有对象处理它为止。主要涉及两个角色:抽象处理者角色(Handler):定义出一个处理请求的接口。这个接口通常由接口或抽象类来实现。具体处理者角色(ConcreteHandler):具体处理者接受到请求后,可以选择将该请求处理掉,或者将请求传给下一个处理者。因此,每个具体处理者需要保存下一个处理者的引用,以便把请求传递下去。

2024-03-13 11:02:46 621

原创 原型模式-C#实现

当我们需要多个相同的类实例时,没必要每次都使用new运算符去创建相同的类实例对象,此时我们一般思路就是想——只创建一个类实例对象,如果后面需要更多这样的实例,可以通过对原来对象拷贝一份来完成创建,这样在内存中不需要创建多个相同的类实例,从而减少内存的消耗和达到类实例的复用。然而这个思路正是原型模式的实现方式。原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。该实例基于实现,直接上代码,下面为三层架构的代码。

2024-03-13 10:57:40 159

原创 享元模式-C#实现

享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。意图:运用共享技术有效地支持大量细粒度的对象。主要解决:在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。何时使用: 1、系统中有大量对象。2、这些对象消耗大量内存。3、这些对象的状态大部分可以外部化。

2024-03-13 10:54:12 496

原创 外观模式-C#实现

意图:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。主要解决:降低访问复杂系统的内部子系统时的复杂度,简化客户端之间的接口。何时使用: 1、客户端不需要知道系统内部的复杂联系,整个系统只需提供一个"接待员"即可。2、定义系统的入口。如何解决:客户端不与系统耦合,外观类与系统耦合。关键代码:在客户端和复杂系统之间再加一层,这一层将调用顺序、依赖关系等处理好。优点: 1、减少系统相互依赖。2、提高灵活性。3、提高了安全性。

2024-03-13 10:45:41 255

原创 适配器模式-C#实现

适配器模式——使得新环境中不需要去重复实现已经存在了的实现而很好地把现有对象(指原来环境中的现有对象)加入到新环境来使用。适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。该实例基于。

2024-03-13 10:39:09 204

原创 桥接模式-C#实现

桥接模式即将抽象部分与实现部分脱耦,使它们可以独立变化。桥接模式的目的就是使两者分离,根据面向对象的封装变化的原则,我们可以把实现部分的变化(也就是遥控器功能的变化)封装到另外一个类中。意图:将抽象部分与实现部分分离,使它们都可以独立的变化。主要解决:在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。何时使用:实现系统可能有多个角度分类,每一种角度都可能变化。如何解决:把这种多角度分类分离出来,让它们独立变化,减少它们之间耦合。关键代码:抽象类依赖实现类。

2024-03-13 10:33:51 266

原创 模板模式-C#实现

在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。主要解决:一些方法通用,却在每一个子类都重新写了这一方法。何时使用:有一些通用的方法。如何解决:将这些通用算法抽象出来。关键代码:在抽象类实现,其他步骤在子类实现。该实例基于实现,直接上代码,下面为三层架构的代码。

2024-03-13 10:27:46 219

原创 命令模式-C#实现

命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。意图:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。主要解决:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系.何时使用:将"行为请求者"与"行为实现者"解耦,将一组行为抽象为对象,可以实现二者之间的松耦合。

2024-03-13 10:22:58 336

原创 工厂方法模式-C#实现

建造者模式,当然也有叫生成器模式的,英文名称是Builder Pattern。动机(Motivate)在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。意图(Intent)将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。

2024-03-13 10:14:56 353

原创 简单工厂模式-C#实现

简单工厂模式我们也可以理解为负责生产对象的一个类,原则就是——封装改变,既然要封装改变,自然也就要找到改变的代码,然后把改变的代码用类来封装,意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用:我们明确地计划不同条件下创建不同实例时。如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。关键代码:创建过程在其子类执行。

2024-03-13 08:57:12 372

原创 观察者者模式-C#实现

观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生改变时,其所有依赖者都会收到通知并自动更新。意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。如何解决:使用面向对象技术,可以将这种依赖关系弱化。

2024-03-13 08:45:26 338

原创 工厂方法模式-C#实现

该实例基于WPF实现,直接上代码,下面为三层架构的代码。

2024-01-25 22:12:01 397

原创 访问者模式-C#实现

该实例基于WPF实现,直接上代码,下面为三层架构的代码。

2024-01-25 22:06:43 696

原创 迭代器模式-C#实现

该实例基于WPF实现,直接上代码,下面为三层架构的代码。

2024-01-25 22:00:50 529

原创 单例模式-C#实现

该实例基于WPF实现,直接上代码,下面为三层架构的代码。

2024-01-25 21:57:33 410

原创 代理模式-C#实现

该实例基于WPF实现,直接上代码,下面为三层架构的代码。

2024-01-25 21:53:00 1078

原创 抽象工厂模式-C#实现

该实例基于WPF实现,直接上代码,下面为三层架构的代码。

2024-01-25 21:47:32 664

原创 策略者模式-C#实现

该实例基于WPF实现,直接上代码,下面为三层架构的代码。

2024-01-25 21:35:23 496

原创 备忘录模式-C#实现

该实例基于WPF实现,直接上代码,下面为三层架构的代码。

2024-01-25 21:20:51 957

原创 C#演示单例模式

确保一个类只有一个实例,并提供一个全局访问点。

2023-10-24 09:35:22 439

原创 C#演示抽象工厂模式

抽象工厂(Abstract Factory):声明了一组用于创建产品对象的方法,每个方法对应一种产品类型。抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。抽象产品(Abstract Product):定义了一组产品对象的共同接口或抽象类,描述了产品对象的公共方法。具体产品(Concrete Product):实现了抽象产品接口,定义了具体产品的特定行为和属性。具体工厂(Concrete Factory):实现了抽象工厂接口,负责创建具体产品对象的实例。

2023-10-24 09:26:59 304

原创 模仿企业微信界面

备注:未实现相关功能,仅模仿界面,不能作为商业用途,若有侵权,请联系删除。

2023-10-23 11:41:12 276

原创 使用WPF模仿Windows记事本界面

本次仅模仿Windows记事本的模样,并未实现其功能。

2023-10-21 20:34:36 1175

原创 TreeView基本使用

AfterSelect事件:TreeView控件最常用的事件为AfterSelect事件,当更改TreeView控件中选定的内容时触发该事件。Scrollable属性:用于指示当TreeView控件包含多个节点,无法全部可视时确定是否使用滚动条,有true和false两个值。ImageList属性:用于设置从中获取图像的ImageList控件,该属性的设置必须与ImageList控件相配合。ShowLines属性:用于指示是否在同级别节点以及父节点与子节点之间显示连线。有true和false两个值。

2023-10-21 20:12:07 385

原创 ToolTip基本用法

【代码】ToolTip基本用法。

2023-08-06 14:17:34 321

原创 TextBox基本使用

【代码】TextBox基本使用。

2023-08-06 14:02:02 204

原创 RichTextBox基本用法

3、Horizontal:只有当文本超过RichTextBox的宽度时,才显示水平滚动条。1、Both:只有当文本超过RichTextBox的宽度或长度时,才显示水平滚动条或垂直滚动条,或两个滚动条都显示。2)Copy( )、Cut( )、Paste( )方法——实现RichText控件的剪贴板功能;6)Undo( )方法、Redo( )方法——撤销上一次编辑操作、重做上次撤销的编辑操作。5)SaveFile( )方法、LoadFile( )方法——保存文本和打开文件。富文本编辑器,支持多种文本展示。

2023-08-06 13:56:49 1039

原创 RadioButton基本使用

【代码】RadioButton基本使用。

2023-08-06 11:55:46 212

原创 ProgressBar基本使用

进度条,用于展示某个任务的完成情况,设定进度条的最大、最小值、自增步长。

2023-08-06 11:48:53 257

原创 PictureBox基本使用

作用:展示图片,同时也具有click属性,可用充当按钮功能。后台代码示范:增加点击事件。

2023-08-06 11:11:04 414

原创 NumericUpDown控件基本使用

设置上下调整数据的小图标放置位置。

2023-08-06 10:20:00 534

原创 NotifyIcon控件基本使用

对象名称name,icon图标,右键菜单contextMenuStrip。系统托盘图标控件,用于应用程序最小化或后台运行时在托盘上面显示图标。

2023-08-06 10:00:48 311

原创 MonthCalendar控件基本使用

是否显示今天、今天上面加一个圆圈、显示多少周。日历控件,用于选择年月日。

2023-08-06 09:58:24 130

原创 MaskedTextBox基本用法

输入字符的占位符,获取输入的数据后留意处理。是一个文本输入框,可以指定文本的输入规则。

2023-08-06 09:54:49 202

原创 ListView基本用法

作用:列表显示框,用于以列的方式展示数据。

2023-07-17 21:02:39 155

C#之 MVVM演示及基本使用!

using MVVMTest.ViewModel; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; namespace MVVMTest { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow { public Main

2023-07-02

C#开发类练习Demo

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharpDemo { //类声明可以指定基类。 在类名和类型参数后面加上冒号和基类的名称。 public class point3D:demo { public int Z { get; set; } //使用base调用父类构造方法初始化成员x,y public point3D(int x,int y,int z) : base(x, y) { Z = z; } public void print() { Console.WriteLine("x={0},y={1},z={2}", X, Y, Z); } } }

2023-07-02

基于控制台的客服管理系统

基于控制台的客服管理系统 while (!flag) { Console.WriteLine("主菜单"); Console.WriteLine("1.客户管理"); Console.WriteLine("2.预约管理"); Console.WriteLine("3.财务管理"); Console.WriteLine("4.退出"); string it = Console.ReadLine(); switch (it) { c

2023-07-02

自动化日志分析工具,可以自定义翻译规则

背景: 打开文本文件后,左侧显示被打开的文件内容,右侧显示鼠标选中的文本的翻译结果,提高日志查看效率。 功能需求: 1.打开文件: 提供选择文件路径的功能; 2.拖放文件直接打开的功能; 3.展示内容分为两部分,左侧展示源文本内容,右侧展示被鼠标选中的文本的翻译效果; 4.左右两片区域可通过中间的分割线自由拉伸宽度; 5.提供打开文件、关闭文件、设置翻译规则、帮助等几个菜单; 6.智能解析xml文件的翻译规则,制定标准模板让用户自行完成xml文件的书写; 7.软件界面开发方式: 纯代码开发 功能需求: 1.打开文件: 提供选择文件路径的功能; 2.拖放文件直接打开的功能; 3.展示内容分为两部分,左侧展示源文本内容,右侧展示被鼠标选中的文本的翻译效果; 4.左右两片区域可通过中间的分割线自由拉伸宽度; 5.提供打开文件、关闭文件、设置翻译规则、帮助等几个菜单; 6.智能解析xml文件的翻译规则,制定标准模板让用户自行完成xml文件的书写; 7.软件界面开发方式: 纯代码开发 功能需求: 1.打开文件: 提供选择文件路径的功能; 2.拖放文件直接打开的功能; 3.展示内容分为两部分

2023-05-07

Qt多线程读写大型文本文件项目

一、功能列表 1.显示文件路径选择框,仅展示 .txt类型文件可选; 2.读取文本文件,显示到桌面控件中; 3.读取的文件使用多线程处理,不影响显示界面正常操作; 4.读取过来的文件如有修改,需要保存修改部分; 5.读、写文件需要显示处理进度; 6.增加一个列表,用于展示文本文件的类型、大小、行数等。 一、功能列表 1.显示文件路径选择框,仅展示 .txt类型文件可选; 2.读取文本文件,显示到桌面控件中; 3.读取的文件使用多线程处理,不影响显示界面正常操作; 4.读取过来的文件如有修改,需要保存修改部分; 5.读、写文件需要显示处理进度; 6.增加一个列表,用于展示文本文件的类型、大小、行数等。 一、功能列表 1.显示文件路径选择框,仅展示 .txt类型文件可选; 2.读取文本文件,显示到桌面控件中; 3.读取的文件使用多线程处理,不影响显示界面正常操作; 4.读取过来的文件如有修改,需要保存修改部分; 5.读、写文件需要显示处理进度; 6.增加一个列表,用于展示文本文件的类型、大小、行数等。 一、功能列表 1.显示文件路径选择框,仅展示 .txt类型文件可选;

2023-04-29

上位机GUI页面包括登录注册主页功能

业务逻辑: 1,有一个用户名输入框,可以输入任意字符; 2,有一个密码输入框,可以输入任意字符,但是需要以 *代替文本显示,避免密码泄露; 3,有一个登录按钮,当点击登录按钮时,到数据库检验用户名与密码的正确性,如果用户名密码验证正确,则跳转到程序主操作页面,否则提示用户检验用户名或密码是否正确。 主控制台功能: 1,海康摄像头视频预览、下载功能; 2,日志解析功能; 3,设备感应器信号实时查看功能; 4,发送指令操作设备硬件的功能; 业务逻辑: 1,有一个用户名输入框,可以输入任意字符; 2,有一个密码输入框,可以输入任意字符,但是需要以 *代替文本显示,避免密码泄露; 3,有一个登录按钮,当点击登录按钮时,到数据库检验用户名与密码的正确性,如果用户名密码验证正确,则跳转到程序主操作页面,否则提示用户检验用户名或密码是否正确。 主控制台功能: 1,海康摄像头视频预览、下载功能; 2,日志解析功能; 3,设备感应器信号实时查看功能; 4,发送指令操作设备硬件的功能; 主控制台功能: 1,海康摄像头视频预览、下载功能; 2,日志解析功能; 3,设备感应器信号实时查看功能;

2023-04-19

上位机页面布局模板,包括业务逻辑和基础功能分区!

业务逻辑: 1,有一个用户名输入框,可以输入任意字符; 2,有一个密码输入框,可以输入任意字符,但是需要以 *代替文本显示,避免密码泄露; 3,有一个登录按钮,当点击登录按钮时,到数据库检验用户名与密码的正确性,如果用户名密码验证正确,则跳转到程序主操作页面,否则提示用户检验用户名或密码是否正确。 在主控制台页面增加设备功能: 1,海康摄像头视频预览、下载功能; 2,日志解析功能; 3,设备感应器信号实时查看功能; 4,发送指令操作设备硬件的功能; 业务逻辑: 1,有一个用户名输入框,可以输入任意字符; 2,有一个密码输入框,可以输入任意字符,但是需要以 *代替文本显示,避免密码泄露; 3,有一个登录按钮,当点击登录按钮时,到数据库检验用户名与密码的正确性,如果用户名密码验证正确,则跳转到程序主操作页面,否则提示用户检验用户名或密码是否正确。 在主控制台页面增加设备功能: 1,海康摄像头视频预览、下载功能; 2,日志解析功能; 3,设备感应器信号实时查看功能; 4,发送指令操作设备硬件的功能; 业务逻辑: 1,有一个用户名输入框,可以输入任意字符; 2,有一个密码输入框,可以输

2023-04-19

QML对元素的操作与定位源码!

所谓转换就是指QML元素的平移,旋转,缩放。 移动:通过改变x,y坐标来完成; 旋转:改变rotation(旋转)属性来完成,其值的范围为0~360 ; 缩放:通过改变scale(比例)的属性来完成的,小于1意味着缩小,大于1意味着放大。旋转与缩放不会改变对象的几何形状,对象的x,y(坐标)与width/height(宽/高)也类似。只有绘制指令是被转换的对象。 所谓转换就是指QML元素的平移,旋转,缩放。 移动:通过改变x,y坐标来完成; 旋转:改变rotation(旋转)属性来完成,其值的范围为0~360 ; 缩放:通过改变scale(比例)的属性来完成的,小于1意味着缩小,大于1意味着放大。旋转与缩放不会改变对象的几何形状,对象的x,y(坐标)与width/height(宽/高)也类似。只有绘制指令是被转换的对象。 所谓转换就是指QML元素的平移,旋转,缩放。 移动:通过改变x,y坐标来完成; 旋转:改变rotation(旋转)属性来完成,其值的范围为0~360 ; 缩放:通过改变scale(比例)的属性来完成的,小于1意味着缩小,大于1意味着放大。旋转与缩放不会改变对象的几何形

2023-04-08

多线程示例源码工程文件

这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程,非常适合新手学习! 这是一个多线程的示例工程!

2023-03-23

Qt undo views示例工程文件

Qt undo views示例工程文件

2023-02-18

空空如也

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

TA关注的人

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