- 博客(365)
- 资源 (12)
- 问答 (1)
- 收藏
- 关注

原创 DRY编码原则
在一个系统中,每一处知识都必须单一、明确、权威地表达。这一点不仅在代码过程当中,在数据结构,甚至文档当中都需要遵守这一原则。}EXAM;有了开始,结束时间,就不需要时长了。
2023-05-01 15:19:20
687
原创 老毛桃装机过程问题记录
这里面最关键的就是,用guid分区,否则无法安装。EFI启动和Legacy启动的区别UEFI(统一可扩展固件接口)和Legacy(传统BIOS)是两种不同的计算机启动模式,它们在系统支持、磁盘分区、启动速度、安全性等方面存在显著差异。系统支持Legacy:支持32位和64位操作系统,兼容性较强,尤其适用于旧设备和运行旧版32位专业软件的场景。1UEFI:仅支持64位操作系统,专为现代64位架构设计,适用于Windows 10及以上版本的系统。磁盘分区。
2025-03-26 13:36:00
602
原创 QT非UI设计器生成界面的国际化
用QT开发多语言界面程序,主要包括以下几个步骤1)在程序设计阶段,程序代码中每一个用户可见的字符串都有tr()函数封装2)在项目配置文件(.pro文件)中设置需要导出的翻译文件(.ts文件),使用lupdate工具扫描项目文件 中需要翻译的字符串,并生成翻译文件3)使用Qt的Linguist程序打开后成的翻译文件,将程序中的字符串翻译为需要的语言,如将所中文字符串翻译为英文4)使用lrelease工具编译翻译好的翻译文件,生成更为紧凑的".qm"文件。
2025-03-17 15:31:07
385
原创 C++的二维数组
在 C++ 中,二维数组是一种常用的数据结构,它可以看作是数组的数组,类似于数学中的矩阵。以下将从定义、初始化、访问元素、内存布局和使用示例等方面详细介绍 C++ 中的二维数组。二维数组的一般定义语法如下:数据类型 数组名[行数][列数];其中,数据类型 可以是任意有效的 C++ 数据类型,如 int、double、char 等;数组名是用户为数组取的名称;行数 和 列数 分别表示数组的行数和列数,它们必须是常量表达式。示例:// 定义一个3行4列的二维整数数组。
2025-03-14 15:54:20
894
原创 如何参与开源项目
总起来说,就是创建自己的分支,然后请求合并分支,合并分支时,就是代码维护的大拿们对你提交的代码进行审核,审核通过后,才能合并代码,这样就完成了代码的提交。
2025-02-08 15:30:10
467
原创 Excel的配置-开放的XML文件
最后,简单的来说,xlsx,就是一个压缩的xml文件集合。那这个Xml文件是什么情况呢?这样了解通了Excel的配置之后,想通过程序更改xml就简单了,你也可以输出你想要的图表,程序员的才华终于可以施展了。哈哈,原来就是xml文件,那不就简单了,哈哈!
2025-01-20 09:46:15
682
原创 够用即好的软件
本质上,上面两个方法,实现的功能是一样的。第二种方法,扩展性更好。但现实世界不会让我们生产出太多真正完美的产品,尤其是完全没有Bug的软件。时间、技术、急躁合力对抗着我们。然而,莫要太沮丧。如杂志上一篇由爱德华.尤登写的文章所述,你能训练自己写出够好即可的软件-----对用户、未来的维护者来说够好即可,只要好的程序能让你自己内心平静就可以。你会发现,你变得更有效率,用户也更快乐。而且,可能让你更开心的是,更短的孵化期促使你的程序实际更好了。
2025-01-17 14:16:31
371
原创 使用外部配置参数化应用程序
这很简单,其实就是一种意识,然而,却很重要。正如程序员修炼之道所说:如果没有外部配置,代码的适应性和灵活性就会大打折扣 ,这是坏事吗?在现实世界中,不适应环境的物种会死亡。毛里求斯岛上的渡渡鸟因为不适应岛上出现了人类与家畜,很快就灭绝了。这是被记录的首个因人类活动而灭绝的动物物种。一般可配置化的东西有如下:1、外部服务的证书2、日志级别与日志位置3、应用程序使用的端口、IP地址、机器名及集群名4、特定环境的校验参数5、外部设置参数,例如:时间间隔6、DLL的位置。
2025-01-06 17:58:27
373
原创 c++表达范围勿用数学符号
这种错误,其实就是把数学的表达,带到程序来了。在C++ primer plus书籍中P157,专门提到了这一点:取值范围的测试的每一部分都使用AND操作符将两个完整的关系表达式组合起来。不要使用数学符号将其表示为:编译器不会捕获这种错误,因为它仍然是有效的C++语句。
2024-12-30 15:11:51
560
原创 Qt导出Excel图表
QXlsx 是一个非官方的、独立的 Qt 库,用于读写 Excel 文件(.xlsx 格式)。这个库提供了一个方便的方式来创建新的 Excel 文档或编辑现有文档,而不依赖于 COM 或其他外部接口,使其适用于跨平台应用程序。QXlsx 的主要特性读取和写入 Excel 文件:支持从 .xlsx 文件中读取数据,并能够写入新数据或修改现有数据。支持单元格格式:可以设置字体、边框、颜色、对齐方式等多种单元格格式。多种数据类型:支持字符串、数字、日期和时间等多种类型的数据输入。
2024-11-28 15:57:27
694
原创 vs提示未指定的错误的问题
vs就是一个临时配置文件,删除了可以自动生成。然而,如果没正常关闭软件,出了问题,可是很让头疼,直接删除.vs文件就可以了。
2024-10-29 10:26:53
501
原创 window的0xc000007b错误
这说明基于viusal studio运行库开发的程序,都必须在visual studio库上运行。VC2015运行库,全称Visual C++ 2015运行库,是由微软公司发布的一套运行时库,用于支持用Visual C++ 2015开发的应用程序运行。这些运行库包含了运行用Visual C++开发的应用程序所必需的环境组件。vc++2015运行库软件功能:1、Visual C++ Redistributable Package 安装 Visual C++ 库的运行时组件。
2024-10-28 10:22:03
361
原创 EffectiveC++21条必须返回对象时不要返回引用(通俗讲解)
当然,你会从 getStuScore的返回值中引入构造和析构的开销,但从长远来看,这是为正确的行为付出了一个小的代价。此外,让你恐惧的账单再也不会到来。像许多编程语言一样,C++允许编译器实现者在不改变可视化代码行为的前提下,对代码进行优化,以达到改善生成码性能的目的。在一些情况中,我们发现,getStuScore 返回值的构造和析构可以被安全的消除。当编译器利用了这个事实(编译器经常这么做),你的程序就会以你所期望的方式进行下去,只是比你想要的要快。
2024-10-12 13:29:19
260
原创 Qt多线程操作sqlite数据库
通过锁解决了sqlite数据库多线程操作的写冲突和读写冲突,锁是有消耗的,但很小,我实测6-19ms,这个消耗算是可以了。多线程操作sqlite数据库,关键之处就是在于加锁,保存同时只有一个写的操作;读的操作是可以并发的;有写的操作,读的操作也必须等待,可以说,同时只有一个写操作,无其它操作,通过锁就达到了这一个目的。如果一个线程正在写,另一个线程也要写,怎么办,锁就会让另一个线程等待前一个线程写完,自己再写。锁的本质意义就是保证了,锁的区域,只有一个写线程在访问,而读的线程,可以并发。
2024-09-30 13:39:35
1735
原创 板子电源接线
AC 交流电源接入脚 220VFG 接大地的 也就是220V的地G: 输出电压的负极V: 输出电压的正极可以接 上面标示的G是公用的铭牌上标着输入是AC220V,输出是DC32V,说明您买的是交流220V变直流32V的开关电源,只能输出直流32V。其中2个AC接口接交流220V,交流不分正负;1个FG接口为悬空点;3个G接口为直流32V电源的负极,3个V接口为直流32V电源的正极,一般G接口和V接口是成对的,每一对G—V为一组直流32V电源。
2024-08-22 17:27:27
1087
原创 Qt中英文支持
中英文对应,就是中英文一一对应,并不是我一开始想的自动翻译,这就好像键值对一样,就是这么的简单。相应资料链接:https://download.youkuaiyun.com/download/maokexu123/89658658。
2024-08-21 17:41:26
511
原创 winApi与QtApi的共享内存通信
1、是注意QT的封装,其key,在源码内部进行了处理,好在,提供了api接口,可以获取内部的key.2、信号量是进程间协作的常用的协作机制,非常的好用,也非常的简单,就是+1,-1操作,WaitForSingleObject函数实际就是获取成功则-1操作,其条件就是>0则获取了锁,
2024-08-15 16:31:14
1072
原创 InstallShield协议制作与去掉单位
许可协议要么没有,要么默认是英文的,我们一般需要把许可协议改成中文的。许可协议首先是rtf文件,写完内容,放到这里:beginabort;endif;szMsg = "";elseendif;szMsg = "";szMsg = "";if (nvSize!elseendif;endif;
2024-07-29 15:03:07
428
原创 Qt的64位程序与32位程序的通信
简单的说就是通过共享内存实现了64位程序与32位程序的通信,这样好处挺多。因为这样程序的独立性增强了,共享内存,真得很好用,特别是qt对共享内存的封装特别的好,直接带了锁的功能,lock,unlock非常的好用。其关键如图所示:关键就在于定死长度的数据类型,这样32位程序与64位程序都可以用,这也理解了qint32这种带着长度类型的好处了,一眼就可以看出其长度是多少,在跨进程时,就可以放心的使用,因为其长度是固定的,不同的处理器都可以正确的解析这种类型。
2024-07-04 11:36:30
1473
原创 QT的TCP服务端与多客户端通信
QT有自己的特色,大体流程各个语言都差不多,整体可以这样理解:客户端能找到服务端,然而,服务端一开始找不到客户端,如果想维护常连接,必须客户端发起,服务端对连接进行管理,从图中可知服务端需要管理这一个套接字池。
2024-06-25 15:29:35
1224
原创 Qt报表实现-QPainter+QPrinter
这里最关键就是根据位置进行画了,有些复杂,但可以精确控制位置,也是非常好的。其坐标在左上角,这与视图的坐标是一致的,其实,可以理解,其就是这么一个图:然后,就可以按照这种坐标,进行画自己想要的东西:表格、文字、图画等。项目下载地址:https://download.youkuaiyun.com/download/maokexu123/89478200。
2024-06-24 15:50:03
993
原创 qt经典界面框架
其实就是一个简单的界面显示,是很常用的形式。说起来简单也是简单,但当初,刚开始做时,感觉非常的复杂,不知如何下手。现在感觉简单多了。这个框架利用了QT的现成的MainWindow与QDockWidget,这样就很轻松拥有了界面上的组件。然则,这离系统要加菜单之类的东西,边界的设置,还是有差距的。这就用到了,QT的界面组合。QT的界面可以任意的组合,就像搭建积木一样。这一个界面很简单,里面有很多可以扩充的地方,扩充好了,就是一个非常漂亮的系统,上面只是一个界面的架子,其它的东西,包括界面,可以任意
2024-06-21 10:59:20
1214
6
原创 opencv中文路径问题
其关键在于用了toLocal8Bit()的编码转化,这一个函数的解释如下:以QByteArray形式返回字符串的本地8位表示形式。如果字符串包含本地8位编码不支持的字符,则返回的字节数组是未定义的。
2024-06-18 13:53:39
683
原创 C++中extern “C“的用法
extern "C"是经常用到的东西,面试题目也经常出现,然则,实际用时,还是经常遗忘,因此,深入的了解一下,以增强记忆。extern "C"指令非常有用,因为C和C++的近亲关系。注意:extern "C"指令中的C,表示的一种编译和连接规约,而不是一种语言。C表示符合C语言的编译和连接规约的任何语言,如Fortran、assembler等。另外,extern "C"指令仅指定编译和连接规约,但不影响语义。例如在函数声明中,指定了extern “C”,仍然要遵守C++的类型检测、参数转换规则。综上所
2024-06-13 13:44:52
587
原创 c++线性关系求值
两个变量之间存在一次函数关系,就称它们之间存在线性关系。正比例关系是线性关系中的特例,反比例关系不是线性关系。更通俗一点讲,如果把这两个变量分别作为点的横坐标与纵坐标,其图象是平面上的一条直线,则这两个变量之间的关系就是线性关系。在高等数学里,线性函数是一个线性映射,是在两个向量空间之间,维持向量加法与标量乘法的映射。例如,假若,我们用坐标向量(coordinate vector来表示 与。那么,线性函数可以表达为其中, M是矩阵。线性关系,应用非常广泛,我在工作当中,就用过好多次。
2024-06-12 16:19:38
493
原创 c++分治法求峰值
分治算法分治算法是将一个规模为N的问题分解为K个规模较小的子问题;这些子问题相互独立且与原问题性质相同;求出子问题的解,就可得到原问题的解;分治法,神奇之处在于,整体与各个部分的分解方法是一样的,可以说体现了事物的普通性与特殊性的原理。这种方法,可以求解很多问题,如果你遇上一个数据量很大,并且,让你头大的问题,一般来说,用分治法,可以很简单的解决。上面的问题,如图所示:整体与部分都可以,进行同样的分解,同样的求频率最高的组,这就是最具特点的地方。
2024-06-11 16:33:16
922
原创 Qt设置进程环境变量
这虽然是一个小问题,但也是非常让人头疼,查了不少的资料,问了不少的人。从上图可知,修改系统环境变量,是一个很麻烦的事,因为,有一个单独的进程Explorer管理这一个系统环境变量,还有这么多的进程访问这一个系统环境变量,这就导致了修改和更新很麻烦,虽然通过注册表可以修改系统环境变量,但是想立即生效,却很难。
2024-06-07 17:14:26
815
原创 win7补丁下载
一般来说,安装上windows系统就带着补丁了,但有时,安装的是原始版的操作系统是不带补丁的,一般直接更新就可以了,但有时,电脑不能联网,只能通过安装包进行升级,所以下面介绍如何下载win7补丁。
2024-06-07 15:29:41
789
原创 c++容器边遍历边删除
上面图就是结合上面例子的分析,这里最为关键的理解就是,iterator是与容器紧密关联的,如果容器发生了变化,原来的iterator就失效了,因为容器可能重新分配空间,所以必须重新获取iterator.有两种简单的获取方法:1、和原来的一样,再it = myList.begin();2、接着循环往下走:it = myList.erase(it);就是这么简单。
2024-06-06 15:41:57
878
原创 opencv判断二值的情况
先说说理论:什么叫图像的二值化?二值化就是让图像的像素点矩阵中的每个像素点的灰度值为0(黑色)或者255(白色),也就是让整个图像呈现只有黑和白的效果。在灰度化的图像中灰度值的范围为0~255,在二值化后的图像中的灰度值范围是0或者255。黑色:二值化后的R = 0二值化后的G = 0二值化后的B = 0白色:二值化后的R = 255二值化后的G = 255二值化后的B = 255那么一个像素点在灰度化之后的灰度值怎么转化为0或者255呢?比如灰度值为100,那么在二值化后到
2024-02-23 13:37:33
742
1
原创 opencv判断灰化情况
灰化是怎么判断的呢?灰化图在opencv中是单通道图,但保存时,会转化成RGB模式的图。所以,再加载,通过通道数,判断是否是灰度图,这样是不对的。解决方法:首先,一个图片在保存时,其实是以RGB模式保存的,这也是操作系统默认的保存方式。那一个灰化图在保存时,会默认转化为RGB模式,怎么转化,其就是把一个灰化值重复为三份,分别对应RGB,这样就可以了。如图所示:知道这个情况了:就知道如何判断一个图是否灰化了:那就是:R=G=B就可以了。
2024-02-22 16:45:38
1213
原创 opencv图像的本质
OpenCV是一个跨平台的库,使用它我们可以开发实时的计算机视觉应用程序。它主要集中在图像处理,视频采集和分析,包括人脸检测和物体检测等功能。数字图像在计算机中是以矩阵形式存储的,矩阵中的每一个元素都描述一定的图像信息,如亮度、颜色等等。数字图像处理就是通过一系列操作从矩阵数据中提取更深层次信息的过程。
2024-02-22 10:33:43
738
原创 c++中浮点类型比较的理解
所以,我们还得到另外一个重要的经验:使用浮点数进行相等(==)和不等(!=)比较的操作通常是有问题的。浮点数的相等比较,一般总是使用两者相减的值是否落在0的邻域中来判断的。
2024-02-18 17:11:56
761
实用工具+进制转化+十六进制数与浮点数类型的转化
2024-09-30
共享内存+信号量+Qt进程与winApi进程通信
2024-08-15
qt-QPrinter+QPainer+报表打印
2024-06-24
Qt+QWidget+界面框架-界面开发
2024-06-21
汇编编程+masm32+helloworld例子
2024-02-28
qt-C++开发例子3-演示了元对象的用法
2024-02-23
qt-C++例子2+代码化UI设计
2024-02-23
QT+OpenCV+最简单的图片+判断灰化与二值化
2024-02-22
qt-C++例子1+输出HelloWorld
2024-02-22
Qt-Qt插件技术-调用插件入门示例
2024-01-09
Axure使用手册_设计人员使用_用于设计原型
2022-02-26
程序员职业规划-如何成为优秀的企业人才.ppt
2021-12-31
软件开发规范-软件工程师-国家标准-软件开发规范.zip
2021-12-30
软件设计-工作流设计-工作流详细设计.doc
2021-12-30
项目案例-Java项目-初学者学习java-香香宠物医院.zip
2021-12-30
qt程序自动指定dll目录
2024-02-01
c语言命名规则1-关于下划线
2021-11-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人