- 博客(26)
- 收藏
- 关注
原创 在QT中实现线程暂停
本文介绍了在QT中实现线程暂停与继续的两种方法。第一种利用QMutex互斥锁机制,通过lock()和unlock()控制线程阻塞,实现随时暂停和继续的功能,灵活性较高但需注意避免死锁。第二种采用QWaitCondition条件等待类,通过wait()和wake()方法实现阻塞与唤醒,虽然实现简单但灵活性不足。作者建议在需要高灵活性的场景下优先选择互斥锁方案,但使用时需仔细处理线程关系以防内存冲突或死锁问题。
2025-10-04 12:53:16
899
原创 对粒子群算法的理解与实例详解
粒子群算法也是一种智能优化算法,其解的优化改进模拟的正是鸟群或鱼群的社会行为。那鸟群的社会行为有什么特征呢?鸟群在觅食过程中,一群鸟在空中四处飞翔寻找食物源,不同的鸟通过共享信息来改变自己的飞行方向,从而最终使所有的鸟都能找到并汇集到最好的食物源。粒子群算法正是利用了鸟群共享信息这一特征,从而用于调整解的改进方式。
2025-07-20 23:02:12
864
原创 对蚁群算法的理解和实例详解
蚁群算法是一种模拟蚂蚁觅食行为的智能优化算法,通过信息素和启发式因子指导解的演进方向。算法的核心思想是:蚂蚁在路径上留下信息素,后续蚂蚁倾向于选择信息素浓度高的路径,从而逐渐形成最优路径。算法实现步骤包括:初始化蚁群参数、设置蚂蚁初始位置、基于概率选择路径、更新信息素矩阵等。以旅行商问题为例,算法能有效收敛到较优解,且比遗传算法更稳定,但容易陷入局部最优。通过调整启发因子和信息素参数,可以平衡算法的探索与开发能力。该算法适用于路径优化问题,展现了群体智能的优越性。
2025-05-31 12:40:49
681
原创 遗传算法求解旅行商问题分析
旅行商问题抽象为数学描述为,在平面内有有限个点,寻找一条路径穿过所有点,使路径长度最短。这个问题描述很简单,其实想要求解也很简单,因为途径所有点的路径数量是有限的,我们可以采用穷举法计算每一条路径的距离值,然后得到最短路径。但是采用穷举法的可行性不高,当我们要途径几十个点时,所有路径的总数是n!,这是一个非常庞大的数字,穷举已经不现实。因此我们选择采用其他智能优化算法来求解该问题。
2025-05-16 00:15:31
1147
原创 对遗传算法思想的理解与实例详解
遗传算法在求解最优解的问题中最为常用,不论是在线性还是非线性问题中都得到广泛运用。本文主要介绍对遗传算法思想的个人理解,并结合一个简单实例进行说明,以便在后续实际问题中能够借助遗传算法思想解决问题。首先需要明白的是,遗传算法只是一种求解最优近似解的算法之一,它不是用于求解精确解的方法。当然,如果我们能得到精确解,自然也没必要去研究最优近似解。
2025-05-09 23:31:18
1062
原创 对卡尔曼滤波的理解和简单示例实现
经典卡尔曼滤波算法在线性系统中运用非常广泛,可以对数据实现很好的平滑处理,降低噪声,使滤波后的数据更加接近真实值。此处不对卡尔曼滤波做深入的数学原理分析,相关的资料已经很多,只是讲解卡尔曼滤波的基本使用方法。卡尔曼滤波核心思想就是利用当前时刻的测量值与前一时刻对当前时刻的估计值进行加权求和后,得到当前时刻的最优值,这个值被认为是最接近真实值的结果。
2025-04-26 21:22:51
928
原创 在QT中进行控件提升操作
QT中提供的标准控件能够满足我们大多数情况下的功能需求,但是在一些特殊应用场合,我们可能需要对控件的功能进行扩展,或者改写控件的功能实现。为满足此需求,QT提供了对标准控件的提升功能,用于重新自定义标准控件的实现。本文以QListWidget控件为例,详细介绍了控件提升的具体操作和实现。
2025-03-18 22:01:03
1107
原创 QT中委托QStyledItemDelegate的使用
Qt的数据容器控件采用模型/视图(model/view)架构设计。模型用于存放控件的数据,视图则用于显示编辑数据,而委托则是用于实现自定义视图的一种方式。比如我们在QTableWidget表格控件中想要使用combox控件来编辑数据,就需要使用到委托功能。对于委托,通俗一点理解就是将需要实现的一些功能交由其他对象来承担。本文以QTableWidget控件为例,对Qt中委托的使用进行简要介绍。
2025-03-10 23:34:24
1248
原创 在Windows系统下部署java开发环境
java程序是运行在java虚拟机(JVM)之上的,在电脑上想要编译运行java代码,我们需要安装相应的虚拟环境、依赖包和编译器等工具。Oracle公司为我们开发java程序提供了全套的开发工具包Java Development Kit (JDK),安装完成JDK后我们就可以在电脑上编译运行java程序了。本文不仅介绍JDK的安装,同时介绍常用java集成开发环境IDEA和MySQL数据库的安装,在本机搭建一个完整的java开发环境。
2025-03-01 22:35:07
653
原创 对学习编程语言的一些理解
每种编程语言都有自己的优势,越是高级、最新的语言,学习越简单,开发效率越高。但个人认为C/C++仍然是所有高级语言的基础。很多人在学习编程时纠结该学哪一种语言,个人建议入门就应该从C/C++开始,它是其他高级语言的思想根基。而且以后编程终将会成为每个人的通用技能,就如开车一样,它本身也不是一项高深的技术,只是辅助我们工作的一项工具。所有打好基础是关键,再学习任何一种语言都会很便捷。
2025-02-21 21:09:51
824
原创 基于PaddleOCR的图像文字识别与程序打包方法
本文主要介绍利用现有开源的图像文字识别(OCR)库,开发一个简单的程序,用于识别图像中的文字信息。当前,开源的OCR库有很多,比如国外的Tesseract、EasyOCR,国内百度、阿里、腾讯等均提供了相应的开源工具包。百度的PaddleOCR在中文识别上准确率很高,百度开发的paddleocr库也为人工智能开发提供了各类算法模型,在人工智能开发领域运用比较广泛。本文基于PaddleOCR,在python中利用百度已经训练好的OCR模型库,完成对图像中文字识别,并将程序打包,使其可移植到其他电脑。
2025-02-10 22:04:36
1663
原创 QT实现多线程的方法
QT多线程编程常见的有3种实现方法,一种是继承QThread类,一种是利用QThread的消息循环,还有一种是使用线程池。本文对3中实现方法进行了详细说明和比较,可根据需要在程序开发中适当选择。
2025-02-07 21:57:53
2022
原创 python卷积神经网络人脸识别示例实现详解
通过一个人脸识别示例,详细说明了利用pytorch模块搭建卷积神经网络的实现流程,并对代码进行了逐行解释。pytorch极大方便了神经网络开发,让开发人员可以不用关注网络中具体的算法实现,而更加侧重在网络模型搭建上。在本例试验测试中,模型的训练次数和网络结构参数的调整均会对图像识别的准确造成大幅度影响,仍需要通过大量测试优化网络结构参数。
2025-02-07 00:19:09
2526
5
原创 C动态库的生成与在Python和QT中的调用方法
动态库文件在程序开发中运用很常见,但C和C++代码生成动态库文件,以及在使用时均存在一些差异,本文对两者的差异进行了讲解,并通过具体的实例加以说明。实例均在Windows系统下进行,Linux系统下的实现一样。DLL动态库方便程序模块化开发,但是在进行跨语言调用时,最好只在DLL中封装相应的实现函数,而不要跨语言调用类的实现,避免一些不可预测的问题。
2025-01-26 15:43:40
1534
原创 对神经网络基础的理解
最近学习了一本书《python神经网络编程》,该书通过对一个数字识别案例的深入详细讲解,可以让读者对神经网络的思想有更加清晰的理解,明白计算机神经网络是如何工作的。在没有真正接触神经网络之前,总以为这是非常深奥的理论,也不明白神经网络是如何模拟人的大脑进行学习和判断的,难以理解计算机能够模拟人的大脑。《python神经网络编程》确实是一本很好的入门教材,它让读者能够真正踏入人工智能的门槛,奠定深入研究的基础。
2025-01-23 23:47:13
2046
原创 利用墨卡托投影数据还原地球三维视图
本文只是提供了一种将墨卡托投影的地球二维地图还原为地球三维视图的方法,所有地图数据信息均读取在内存中,在一些小型应用场景下可以借鉴。在大型的地理信息系统中,不同分辨率下的地图数据均是采用瓦片形式存放在数据库中的,数据量是及其庞大的,只能根据需要展示的范围需求从数据库中提取相应数据然后生成视图,所以本文提供的方法不适用大型应用场景。但是对图像的坐标转换和投影思路基本是一致的,不同之处当然也包括在提升效率方面所采用的不同并行处理方法。
2025-01-18 17:12:54
1232
原创 用QT实现自定义样式按钮控件
在用QT开发界面程序时,默认的按钮控件样式不美观。当需要构建自定义的按钮样式,使界面显示效果更加美观时,可以对QT提供的默认按钮控件进行样式修改。本文提供了一种基于QT默认按钮控件,实现自定义样式按钮的方法。
2025-01-09 11:18:11
2260
原创 使用QAction控件在信号和槽之间传递自定义参数
在使用QT框架进行界面设计时,经常会使用到QAction控件为鼠标右击事件添加弹出菜单。QAction控件默认提供了四个触发信号:changed()、hovered()、toggled(bool checked)、triggered(bool checked = false),这4个信号中只有toggled和triggered可传递指定的参数类型。而在实际开发中,我们往往需要在单击QAction控件时传递自定义的参数。
2025-01-06 21:37:11
877
原创 解决关闭QMdiArea中子窗体仍然显示问题
QT的QMdiArea控件用于实现多文档窗口布局显示。在QMdiArea控件中添加子窗体后,如果直接点击子窗体的右上角关闭按钮,可以直接关闭子窗体。若是在子窗体程序代码中直接调用close()函数,则窗体中的控件消失,但是子窗体框架仍然显示。
2025-01-06 15:17:15
800
原创 STK仿真软件导入本地地球模型底图
STK仿真软件自带的地球模型底图分辨利率较低,此处提供一种使用本地的地图资源替换STK软件(版本号STK11)中的地球模型的方法。
2025-01-04 00:01:04
1861
原创 使用QT读取tiff格式的地图数据
一、TIFF文件基本格式此处对TIFF文件格式的基本组成做一个宏观介绍,记录一下我在初次解析该格式文件时所产生的一些误解,也让大家避一些坑,可以更加快速直观的对TIFF文件的数据存储结构有一个基本了解。涉及到具体的格式说明网上已经有很多详细的介绍,此处不再赘述。
2024-12-31 13:15:33
2343
原创 一种MATLAB与C#联合编程的实现方法
MATLAB与C#联合编程常见的实现方式有两种,包括COM组件和C共享库即DLL动态链接库。此处选择采用DLL动态链接库的方式,DLL动态链接库的优点在于其可靠性高以及操作简单,能够快速实现,其缺点在于不能完全脱离MATLAB独立运行,需要MATLAB相关环境的支持,并且在初次链接运行时耗时较长。
2024-12-30 20:20:29
1228
原创 在龙芯3C5000L+V10麒麟服务器操作系统通用版上源码编译部署QT开发环境
因为工作需要,需在国产软硬件平台上搭建QT开发环境。龙芯3C5000L的指令集与X86不同,QT没有提供在麒麟系统下适配该CPU的直接安装程序,所以只能通过源码编译部署QT开发环境。最初在QT官网下载了最新版本的源代码,在网上查了很多教程和方法,踩过太多坑都没有成功。最后还是选择了QT比较老的5.14.2版本,编译部署成功。3C5000L芯片推出时间还不长,而最新QT版本源码编译时所需依赖库的版本也较高,有些依赖库尚未适配3C5000L芯片,导致在源码编译过程中出现各种错误。
2024-12-27 10:00:00
1570
2
原创 龙芯3C5000L+麒麟服务器操作系统V10通用版配置简易远程桌面和FTP服务
本文基于国产软硬件平台提供了简易的远程桌面和FTP服务配置方法,在内部局域网内可以实现相关服务的快速搭建。
2024-12-27 06:00:00
1115
原创 使用Winrar打包exe程序
最后放弃使用打包工具,改为常用的Winrar压缩软件制作一个压缩包,同样可以实现方便快捷的程序分发,而且压缩后的文件更小,用户使用体验也不受影响。3) 在弹出的“高级自解压选项”窗口中选择“设置”页,可以在此处设置文件压缩前后需要执行的程序。图中我设置了压缩文件的图标,此处可以选择电脑中存放的ico格式图片,该图可以不在被压缩的文件中。主要是在将压缩文件直接保存到桌面时,有时候会出现图标无效的情况,在修改压缩文件名称后,文件又会自动更新为设置的图标。我的程序是使用QT开发的,文件目录如下图所示。
2024-12-24 21:29:44
1245
MATLAB实现蚁群算法求解函数极值问题
2025-05-31
完全使用C语言编写的一个教师工作量管理系统
2025-02-12
python实现简单神经网络识别数字
2025-01-23
TLE两行轨道根数读取源代码
2025-01-09
一个QT编写的可以跨windows和麒麟操作系统编译使用的UDP数据接收程序
2024-12-27
一个用于QT源代码统计分析的小工具
2024-12-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅