自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Qt应用图标设置全攻略:从窗口到可执行文件(附避坑指南)

设置Qt应用图标需区分编译期资源(如.exe图标)和运行时资源(如窗口图标),避免混用路径导致错误。通过合理使用资源脚本(.rc)和跨平台配置,可确保图标在Windows、macOS、Linux上正常显示。

2025-05-16 14:11:48 1004

原创 【QT 项目部署指南】使用 Inno Setup 打包 QT 程序为安装包(超详细图文教程)

安装完成后打开脚本编辑器:编写安装逻辑的代码区域。编译按钮:生成安装包的核心功能按钮(绿色三角图标)。常用工具栏:快速访问向导、调试、语言设置等功能。通过 Inno Setup 打包 QT 项目,既能提升用户体验,又能简化部署流程。动态库模式适合追求可执行文件体积小的场景,静态库模式适合需要完全独立部署的场景。建议根据项目需求选择合适的打包方式,并通过多次测试确保安装包的稳定性。附:Inno Setup 脚本模板;脚本模板(动态库模式)[Setup][Files][Icons]

2025-05-15 16:04:01 816

原创 做好的QT软件,换一个笔记本打开后发现字体很小,部分字体还被控件遮挡

出现这种情况的原因主要是屏幕的DPI(每英寸点数)不同。Qt中控件的大小单位为像素,在高DPI下,控件会变小,低DPI下控件会变大。而Qt中字体的单位默认为磅,无论在什么显示器上显示同一磅值的字体,其大小理论上不会发生变化。这就导致在高DPI屏幕上,可能因控件变小而造成字体显示不全或字体相对控件显得过大被遮挡的情况。

2025-05-12 16:27:54 342

原创 Qt中解决UI线程阻塞导致弹窗无法显示的两种方法

使用QCoreApplication::processEvents():在耗时操作中定期调用这个函数,让Qt有机会处理UI事件。这种方法简单,但适用于相对简单的耗时操作。使用QThread分离耗时操作:将耗时操作放在单独的线程中执行,通过信号和槽与主线程通信。这种方法更适合处理复杂的耗时操作,能提供更好的用户体验。

2025-05-12 09:59:19 991

原创 Qt 中基于 spdlog 的高效日志管理方案

Q_OBJECTpublic:// Qt风格日志接口// 带格式化的日志signals:private:在头文件中,我们声明了QtLogger类的静态成员函数用于初始化日志系统和获取单例实例,还定义了多种日志记录接口,包括普通日志接口和带格式化的日志接口。同时,通过信号logMessage可以实现对 Qt 原生日志消息的进一步处理。通过以上实现,我们在 Qt 项目中成功集成了spdlog库,并封装了一个简单易用的日志管理类QtLogger。

2025-05-07 15:01:52 441

原创 理解 `#pragma pack`:C/C++内存对齐的钥匙

想象一下你正在整理书架。如果把所有书随意摆放,虽然节省空间,但找书会很慢。如果按照一定规则排列(比如按高度分组),虽然会浪费一些空间,但存取效率更高。这就是内存对齐的基本思想。在计算机中,CPU访问内存时也有类似的优化机制。大多数现代处理器不会按单字节访问内存,而是以4字节或8字节为单位进行存取。因此,编译器会默认对数据进行对齐优化。就像C/C++程序员手中的一把精密螺丝刀,在需要严格控制内存布局的场合(如网络编程、文件格式处理、硬件交互等)发挥着关键作用。

2025-04-21 16:07:45 656

原创 Visual Studio 2022 运行一个后台程序而不显示控制台窗口

【代码】Visual Studio 2022 运行一个后台程序而不显示控制台窗口。

2025-04-21 09:33:47 366

原创 C++单例设计模式

std::call_once: 该函数配合 std::once_flag 使用,能保证 m_instance 的初始化代码只执行一次,即使多个线程同时调用 getInstance 函数,也不会出现重复初始化的问题。为了解决这个问题,这里采用 std::call_once 来实现线程安全的单例,它比单纯使用互斥锁效率更高,因为 std::call_once 能保证某个函数只被调用一次,即使在多线程环境下。类的单例模式,确保了网络环境的初始化和回收只进行一次,避免了因不当使用该类对象而导致的问题。

2025-04-18 16:45:54 757

转载 错误 MSB8020 无法找到 v143 的生成工具(平台工具集 =“v143”)

Ps:如果报错提示“无法找到 v142 的生成工具(平台工具集 =“v142”)”或“无法找到 xxxx 的生成工具(平台工具集 =“xxxx”)”,可以把“v142”替换掉,替换为相对应的平台工具集(以此类推,替换内容根据自身情况来决定),替换成功后点击保存。下载了个项目,这个项目之前应该是用vs2022创建的,我用vs2019编译,报以下错误,在网上查了很多资料都没用,然后自己研究了一下,完美解决。选择生成->重新生成解决方案,这时候可以看到,生成成功,没有报错,完美解决问题。选中项目,鼠标右键属性。

2025-04-18 10:26:12 173

原创 如何将Windows平台Qt项目打包为独立可执行文件

【代码】如何将Windows平台Qt项目打包为独立可执行文件。

2025-04-15 16:00:55 361

原创 QT信号与槽机制详解及C++实现

信号与槽机制是QT的核心特性之一,它通过元对象系统和连接管理实现了灵活的对象间通信。虽然我们的C++简化实现只展示了基本概念,但它有助于理解QT信号槽的工作原理。在实际QT开发中,我们可以直接使用更强大、更完善的QObject信号槽系统,而无需自己实现。希望这篇博客能帮助你理解QT信号与槽的内部机制!

2025-04-13 16:59:54 535

原创 使用C++操作MSXML:全面指南与详细代码解析

MSXML (Microsoft XML Core Services) 是微软提供的一组服务,允许应用程序基于Windows平台构建基于XML的解决方案。它提供了对XML文档的加载、解析、验证、查询和转换等功能。MSXML支持多种XML标准,包括XML 1.0、XSLT 1.0、XPath 1.0、SAX2和DOM。在本指南中,我将详细介绍如何在C++中使用MSXML库,包括初始化COM、创建XML文档对象、加载和保存XML文件、遍历节点、修改内容以及执行XPath查询等操作。

2025-04-13 16:56:47 344

原创 从0到1使用C++操作MSXML

MSXML(Microsoft XML Core Services)是微软提供的一套用于处理XML的COM组件库,广泛应用于Windows平台的XML解析、验证、转换等操作。本文将详细介绍如何从零开始,在C++中使用MSXML解析和操作XML文件,包含完整的代码示例及逐行注释,帮助初学者快速上手。本文详细介绍了如何在C++中使用MSXML进行XML解析、遍历、修改和保存,并提供了完整的代码示例和逐行注释。通过本教程,可以快速掌握MSXML的基本用法,并应用于实际项目中。

2025-04-13 13:42:12 546

原创 从0到1使用C++Poco库

Poco库是一个功能强大且全面的C++类库,涵盖了从基础工具到网络编程、数据库访问等各个方面。查阅官方文档阅读Poco库的示例代码在实际项目中应用Poco库参与Poco社区讨论。

2025-04-10 08:44:58 600

原创 Qt SQL连接冲突:QSqlDatabase连接名重复问题— duplicate connection name ‘qt_sql_default_connection‘, old connec...

始终使用唯一连接名基于对象地址、线程ID或时间戳生成唯一名避免使用默认的遵循RAII原则在构造函数中创建连接在析构函数中关闭和移除连接线程安全每个线程使用独立连接使用互斥锁保护连接创建过程错误处理检查数据库操作返回值记录错误日志连接生命周期管理确保连接在使用期间有效及时释放不再需要的连接。

2025-04-09 08:25:43 352

原创 Qt与C++数据类型转换

掌握Qt与C++数据类型间的转换是跨框架开发的关键技能。优先使用Qt原生转换方法(如注意编码问题,特别是处理多语言文本时了解两种类型系统的优势,在适当场景选择最佳方案。

2025-04-08 16:32:47 1008

原创 基于条码数据生成校验密码的C++实现方案

在医疗试剂、工业产品等需要严格追踪管理的领域,条码系统常被用于标识产品信息。本文将详细介绍4种用C++实现的条码密码生成算法,这些算法可以根据条码前11位数据生成2位校验密码(第9、10位),用于数据校验或简单防伪。本文介绍了4种实用的条码密码生成算法,开发者可根据实际安全需求选择合适的方案。对于医疗试剂等关键领域,建议采用方案三(动态密码)或组合多种算法来增强安全性。所有代码示例均使用标准C++实现,可直接集成到现有系统中。

2025-04-07 16:45:19 689

原创 如何将本地项目上传到Gitee的指定分支

在团队协作开发中,我们经常需要将本地项目代码上传到代码托管平台(如Gitee)的特定分支。本文将详细介绍从零开始完成这一过程的完整步骤,包含多种场景的解决方案和常见问题处理。

2025-04-03 16:27:23 672

原创 epoll模型:高性能网络编程

epoll正是为解决这些问题而生的新一代I/O多路复用技术,被广泛应用于Nginx、Redis等高性能服务器。测试环境:Linux 5.4, Intel i7-9700K, 10Gbps网络。ET模式必须配合非阻塞IO使用,避免长时间阻塞线程。通过epoll_ctl动态管理监控事件。ET模式必须循环读取直到资源暂时不可用。

2025-03-27 13:08:35 728

原创 select模型:原理与C++实战

在网络编程中,select模型是一种I/O多路复用技术,它允许单个线程同时监控多个文件描述符(如socket连接)的状态变化。就像一位餐厅服务员同时照看多个餐桌一样,select模型让一个线程可以高效处理多个网络连接。

2025-03-27 12:47:08 605

原创 IP组播 & C++简单应用

IP组播是一种网络通信模式,它允许一台主机向一组特定的主机发送数据,而这组主机被称为一个组播组。与单播(一对一通信)和广播(一对所有通信)不同,组播是一对多的通信方式,且只有加入了特定组播组的主机才能接收到数据。想象一下,你在一个大型的在线课程中,讲师需要向所有的学员发送课件。如果使用单播,讲师需要将课件一份一份地发送给每个学员,这会消耗大量的带宽和时间;如果使用广播,所有连接到网络的设备都会接收到课件,包括那些不需要的设备,这会造成不必要的网络流量。

2025-03-27 09:14:02 931

原创 Visual Studio 2022静态库与动态库创建及使用完全指南

在C++开发中,库(Library)是代码复用的重要方式。本教程将详细介绍如何在Visual Studio 2022中创建和使用静态库(.lib)和动态库(.dll),每种库类型都会有完整的创建步骤和实际示例。

2025-03-26 21:22:51 2397

原创 VS自定义静态库并在其他项目中使用

在新项目UseStaticLib中加一个新文件夹lib,lib中放入上面的.h和.lib文件。4、复制.h文件和.lib文件作为静态库。5、创建一个新项目 测试使用新生成的静态库。8、添加一个main.cpp文件,测试一下。6、vs中右键项目 属性 添加一些目录。1、VS创建一个空项目或者静态库项目。2、右键项目 属性 修改生成文件类型。10、说明静态库使用成功。

2025-03-26 21:04:37 260

原创 JSON简介及C++中的JSON使用指南

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用文本格式存储和传输数据。它易于人阅读和编写,同时也易于机器解析和生成。JSON广泛应用于Web API、配置文件、数据存储等领域。C++标准库没有内置JSON支持,但可以使用第三方库来解析和生成JSON。RapidJSON 是一个高效的C++ JSON解析库,适用于对性能要求较高的场景。

2025-03-26 15:07:27 1735

原创 解决 Ubuntu/Debian 中 `apt-get` 报错 “无法获得锁 /var/lib/dpkg/lock“

进程冲突或锁未释放导致,通过终止占用进程、删除锁文件或等待操作完成即可解决。如果问题仍然存在,可检查系统日志(或自动更新)正在运行,导致资源被占用,无法执行新的。如果系统正在自动更新或手动安装软件,稍等几分钟再试。在 Ubuntu/Debian 系统中运行。:Ubuntu、Debian 等基于。希望这篇指南能帮助你顺利解决问题!这表明系统中有其他进程(如。的 Linux 发行版。

2025-03-25 09:00:07 1253 1

原创 如何使用Xshell连接Linux虚拟机

如果一切顺利,Xshell 会显示 Linux 虚拟机的终端界面。本文为原创内容,转载请注明出处。

2025-03-24 13:49:19 1591

原创 开发板与电脑间通过网口通信(踩坑版)

我的开发板有两个网线插口,分别为eth0和eth1,原来的eth0的配置的自动,我希望是eth0的地址和eth1的地址都由我指定,修改如下:设置为指定的ip,需要设置ip、子网掩码、默认网关。设置指定的ip地址,注意,我们开发板设置的ip是192.168.1.103,那电脑只能设置192.168.1.*,*为1~205(除了103),其他两项与开发板设置的要相同。首先,开发板我们先查看eth0和eth1哪个再用,,我们用的eth0,将开发板当服务器,虚拟机当客户端。在一些 Debian 系统上,

2025-01-09 11:17:05 775

原创 在 Linux 中使用 CAN 通信:从配置到测试与代码实现

线程池 (ThreadPool提供了一个用于并发执行任务的线程池,通过enqueue函数将任务放入队列,工作线程从队列中取出任务执行。使用std::mutex保护任务队列的访问,并使用实现线程间的同步。CAN 通信 (提供了通过套接字进行 CAN 消息的发送与接收功能。使用socket创建原始 CAN 套接字,bind绑定到指定的网络接口。发送和接收消息时,通过多线程处理接收到的数据,以提高并发性能。主程序 (main创建线程池和 CAN 通信对象。启动接收线程并发送测试消息。

2024-12-17 10:18:19 4194

转载 在linux上创建并使用虚拟CAN

本文参考了该博主的文章原文链接:https://blog.csdn.net/xiandang8023/article/details/127990159。

2024-12-17 10:03:31 253

原创 Git 的基本概念和使用方式

分支(Branch):分支是Git中用来并行开发和管理不同代码版本的工具。冲突(Conflict):当两个分支对同一个文件的相同部分做出不同的修改时,就会发生冲突。远程仓库(Remote):远程仓库是托管在网络上的仓库,它可以用来协同开发和备份代码。仓库(Repository):Git用仓库来存储项目的文件和历史记录。检出(checkout):检出是用来切换分支或恢复文件到之前的某个提交状态的操作。合并(Merge):合并将两个或多个分支的改动合并为一个分支。命令将本地仓库的改动推送到远程仓库。

2024-12-11 09:23:26 315

原创 使用C++实现串口通信

在嵌入式和工业设备开发中,串口通信是一种非常常见的数据传输方式。本文将结合一个完整的C++示例代码,详细介绍如何通过串口与设备进行通信。

2024-12-10 15:57:19 2159

原创 Ubuntu下U盘只读文件系统

3、修复u盘文件系统故障(根据自己的名对应上)一般是最后一个,每个人位置不一样。

2024-12-03 11:03:38 524 1

原创 Ubuntu 18在安装了中文输入法后无法输入中文,但之前可以正常使用

情况:Ubuntu 18在安装了中文输入法后无法输入中文,但之前可以正常使用。

2024-12-03 09:33:23 1252

原创 国产麒麟系统快捷键截图

按下键盘上的PrtSc键(PrintScreen),若提示缺少GNOME***,下载安装即可。再次按快捷键或者在终端中输入。来验证是否成功安装。

2024-11-25 10:19:12 963

转载 一键编译QT5源码脚本(交叉编译arm64、mips64版本)

这几天为了编写国产专用机上的软件,又盘起了交叉编译一开始想使用深度最新的deepin23正式版做系统,搭建编译环境。然而交叉编译链工具直接安装失败!然后又装了Debian12原版系统,编译环境倒是顺利搭建起来,但是编译出来的程序在目标系统中运行不了,可能是GLIBC版本过高导致…然后又又又装了kali,结果和Debian12是一样的情况…不过让我感到意外的是,kali中居然有龙架构(LoongArch)的编译链工具…QT5交叉编译保姆级教程(arm64、mips64)

2024-11-20 10:11:19 130

转载 QT交叉编译

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.csdn.net/s806903/article/details/134156599什么是?简单说,就是在当前系统平台上,开发编译运行于其它平台的程序。比如本文硬件环境是x86平台,但是编译出来的程序是在架构、mips64等架构上运行本文使用的:统信UOS家庭版22.0#安装python环境(QT中的一些功能、组件需要用到)

2024-11-20 10:06:23 1157

原创 Linux使用sudo的程序输入不了中文【问题解决】

参考文章的链接版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/s806903/article/details/125172903以上博主的文章为主要参考,确实折磨很久,致以谢意。

2024-11-19 10:49:09 883

原创 QLineEdit 控件在设置了 QDoubleValidator 之后无法正确输入小数

控件的输入,使其只能输入数字(包括浮点数),方法是:设置QLineEdit的输入验证器为或来限制输入为整数或浮点数。运行发现问题,QLineEdit只能输入数字,在输入小数点后,不能输入小数位。

2024-10-31 14:29:38 413

原创 LINUX下使用SQLite查看.db数据库文件

通过以上步骤,可以在 Linux 环境下使用sqlite3命令行工具来查看和操作 SQLite 数据库文件。这不仅适用于查看数据,还适用于执行各种 SQL 操作,如插入、更新和删除数据。

2024-10-29 17:04:59 1864

原创 QT编译报错:-1: error: cannot find -lGL

有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是 因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件 包尚未被创建或是它们已被从新到(Incoming)目录移出。,这是指与 OpenGL 相关的库。在使用 Qt 开发时,通常会依赖于 OpenGL 库,但在某些系统上,默认环境可能没有安装所需的 OpenGL 库。QT编译报错:-1: error: cannot find -lGL。正在分析软件包的依赖关系树 正在读取状态信息... 完成。

2024-10-29 11:17:23 941

qt学习vip教程(详细简单)

qt学习vip教程(详细简单)

2024-07-05

MFC操作Access数据库源码

MFC绘制界面,连接Acess数据库,实现对数据库的增删改查操作.

2024-01-05

PDF按条件(尾号相同)批量合成小工具

朋友做会计的,经常需要对大量PDF文件操作,将尾号,比如日期相同的文件合并,费时费力,制作了这个小工具,可以对大量PDF按要求批量合成。

2023-11-07

PDFTK2023-安装包

PDFTK2023-安装包

2023-11-07

C++结合Qt开发天气预报项目-教程

C++结合Qt开发天气预报项目-教程

2023-09-09

细胞分割数据集-测试集+验证集.zip

用于医学图像分割的细胞数据集,分为测试集和验证集,为小样本数据集,已做标记,适合初学人工智能CV领域的同学模拟实验使用.......

2023-09-09

简历模板-程序员.docx

程序员简历模板,适合计算机专业的学生春招、秋招...。。。

2023-09-09

ConvUNeXt-master.zip

结合ConvNeXts和Unet的ConvUNeXt模型,实现对医学图像的精准分割.......

2023-09-09

MFC基础z.docx

MFC基础z.docx

2023-08-27

Linux系统精讲-笔记

Linux系统精讲-笔记

2023-08-27

windows编程笔记

windows编程笔记

2023-08-27

Qt项目-天气预报软件

用Qt做的天气预报软件,自己做的第一个Qt项目,浅浅记录一下。

2023-08-21

Every-1.4.1

Every-1.4.1

2023-08-19

机器学习\深度学习绘图模板

研究生论文写作绘图模板

2023-07-27

LaTeX国赛精品模板.rar

LaTeX国赛精品模板.rar

2023-07-27

数据库实验报告.docx

数据库实验报告.docx

2023-07-27

五一数学建模LaTex模板

五一数学建模LaTex模板

2023-07-27

空空如也

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

TA关注的人

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