- 博客(273)
- 资源 (32)
- 收藏
- 关注
原创 Qt 之 HTTP 请求下载(支持断点续传)
https://blog.csdn.net/GoForwardToStep/article/details/52704464本文旨在修正上述博客遇到的断点下载问题:断点之后下载的文件偏大解析:下载过程中,downloadProgress(qint64, qint64)信号触发的次数和readyRead()信号触发的次数不一样。onDownLoadProgress(qint64, qint64)槽中接收的字节数滞后了。解决办法:m_bytesCurrentReceived为当前下载的文件大小
2020-12-15 20:57:39
729
3
原创 electron程序启动报错“Uncaught Exception Error:The specified procedure could not be found”
最近上线的electron桌面端程序安装之后启动,老是出现报错“Uncaught Exception Error:The specified procedure could not be found”。从现象上看是加载node文件出错了。确定了几个方向,搜索了很多也没找到解决办法最终,...
2020-10-15 23:01:02
7297
6
原创 win10+VS2017+QT 5.14.2 QWebEngine编译HTML5 MP4支持及相关疑难问题解决
编译方案网上都有,这是stackoverflow上最详尽的一篇:https://stackoverflow.com/questions/50510457/how-to-compile-qt-webengine-5-11-on-windows-with-proprietary-codecs/50510458#50510458碰到的疑难问题:1. win10系统,运行qmake -- -webengine-proprietary-codecs,报告需要Windows SDK version 10.0.1
2020-09-02 10:18:06
3017
1
原创 Qt随机选人--年会抽奖小程序
一款基于Qt GUI的随机选人小程序。唯一的缺点:滚动不够平滑。核心源码://random_selector.h#ifndef RANDOM_SELCTION_H#define RANDOM_SELCTION_H#include <QWidget>#include <QPainter>#include <QTimer>#include <QPropertyAnimation>class CRandomSelector : p
2020-08-11 23:39:10
8294
7
原创 50 ubuntu22.04
本文提供Windows系统安装指南,包含两个关键步骤:1)通过U盘启动盘制作工具进入BIOS关闭安全启动并格式化磁盘(参考链接1);2)完成系统安装后的基础配置方法(参考链接2)。文章以CSDN技术博客为参考来源,详细说明了从启动盘制作到系统配置的全流程操作要点,适合需要重装系统的用户参考。
2026-05-22 14:08:00
30
原创 Qt 信号和槽的工作原理
Qt信号槽机制深度解析(150字摘要版) Qt信号槽本质是基于元对象系统(MOC)的安全回调机制。MOC预编译阶段会扫描Q_OBJECT标记的类,自动生成信号/槽的元数据代码。connect操作实质是建立发送者、信号、接收者、槽四者的映射关系。emit信号时,同线程直接调用槽函数,跨线程则通过事件队列异步执行。底层通过QMetaObject存储类信息,QObject维护连接列表,实现线程安全的对象通信。
2026-05-07 14:12:46
26
原创 Qt Connect函数的第5个参数
Qt连接类型参数详解:AutoConnection为默认选项,自动判断同线程直连/跨线程队列;DirectConnection同步执行但线程不安全;QueuedConnection确保跨线程安全异步执行;BlockingQueuedConnection实现跨线程同步但需避免同线程死锁;UniqueConnection防止重复连接。核心原则:UI更新必须用Queued,同线程优先Direct,跨线程同步用BlockingQueued,默认Auto满足大多数场景。
2026-05-07 14:11:36
68
原创 python遍历文件夹下所有内容,生成xmind脑图
摘要:本文介绍了使用Python脚本将文件夹结构转换为XMind思维导图的方法。首先通过xmind库生成基础导图文件,但可能因格式不兼容导致XMind软件无法打开。问题原因在于新版XMind2020+需要包含META-INF/manifest.xml文件。解决方法是通过修改文件扩展名、添加缺失的XML文件并重新压缩来修复格式。最终生成的XMind文件可以正确显示完整的目录树形结构。该方案实现了自动化转换文件夹为可视化思维导图的功能。
2025-12-09 16:06:44
467
原创 error while loading shared libraries: libz.so.1: cannot open shared object file: No such file
摘要:交叉编译时出现"cc1: error while loading shared libraries: libz.so.1"错误,通过安装libz1g和libz1g-dev未能解决。进一步检查发现需要安装32位兼容库,在Ubuntu 18.04等新系统中使用lib32ncurses5和lib32zl替代传统的ia32-libs包。安装完成后成功解决编译问题,使工具链恢复正常工作。
2025-11-26 15:17:04
378
原创 Protobuf跨平台编译
Protocol Buffers编译指南摘要:本文详细介绍了Protocol Buffers(v32.0)在不同平台的编译方法。首先需从GitHub下载源代码并切换至指定版本。Windows平台使用MinGW编译,Linux x86_64需安装必要工具链后编译,ARMv7平台需指定交叉编译器。
2025-10-30 20:57:29
226
原创 Win10环境MinGW构建 mysql-connector-c问题记录
摘要:本文记录了在MinGW环境下构建MySQL Connector/C 6.1.9的过程。用户需从MySQL官网下载源码(https://downloads.mysql.com/archives/c-c/),然后在MinGW编译环境中进行构建。过程中会遇到一些编译错误,需要针对性解决。文章提供了完整的构建步骤和错误解决方案,帮助开发者成功编译MySQL C语言连接器。适合需要在Windows平台使用MinGW编译MySQL C接口的开发人员参考。
2025-10-10 14:52:57
246
原创 Linux系统vscode终端输出文本添加颜色
VS Code终端构建信息着色方案 为解决VS Code终端构建信息不易区分的问题,创建config.sh脚本实现彩色输出: 定义红、绿、黄、蓝等颜色变量 通过正则匹配关键信息类型: 红色:error/FAILED/未定义引用 黄色:warning警告 绿色:成功构建目标 蓝色:链接/生成过程 保留普通信息为白色 执行方式:clear && ./config.sh 注意:文件名含error/warn时也会触发对应颜色显示 该方案显著提升了构建信息的可读性,便于开发者快速定位问题。
2025-09-23 16:06:14
360
原创 基于mosquitto的MQTT安装、配置和使用教程
MQTT是一种轻量级物联网消息传输协议,采用发布/订阅模式,支持三种QoS等级(0-2),具有低带宽、高可靠性的特点。文章介绍了MQTT协议特性、数据包结构和常用代理平台(如Mosquitto),并提供了Ubuntu环境下的安装配置方法。通过示例代码展示了C++实现MQTT发布订阅功能的过程,包括初始化连接、消息回调处理等核心操作。最后推荐了一个基于MQTT的机器人控制开源项目,展示了协议在机器人通信中的实际应用。全文涵盖从协议原理到实践应用的完整内容。
2025-09-12 09:31:37
1123
原创 WSL上Protobuf Android NDK编译移植
介绍了protobuf源码在Android平台上的编译流程。首先从gitee镜像站克隆protobuf源代码并切换到v28.1版本,然后初始化子模块。接着创建build_android目录进行跨平台编译配置,使用CMake指定Android NDK工具链、API级别(21)、ABI(arm64-v8a)等参数。最后执行并行编译(14线程)并安装到指定目录。整个过程展示了如何在Windows环境下使用MinGW和Android NDK交叉编译protobuf库。
2025-08-26 10:22:56
270
原创 Windows下显示已经连过的Wifi密码
摘要:如何通过CMD查看已连接WiFi的密码 打开命令提示符(cmd) 输入命令:netsh 查看已连接WiFi:wlan show profile 查看特定WiFi密码:wlan show profile "WiFi名称" key=clear 在输出结果的"关键内容"后即为WiFi密码。 注意:需要管理员权限才能执行此操作。
2025-08-12 09:37:06
212
原创 Qt中的二进制兼容
本文介绍了C++中的D指针和Q指针设计模式。D指针通过将类数据成员封装到私有结构体中,仅保留一个指针在公共类中,从而解决库的二进制兼容问题,使程序无需重新编译即可使用新版本库。Q指针则用于在私有类中访问所属的公共类。这两种模式在Qt库中被广泛使用(Q_D和Q_Q宏),既能隐藏实现细节,又能保持API稳定性,实现了二进制兼容和更快的编译速度。
2025-08-11 09:50:14
277
原创 基于Qt C++设计的2048小游戏
本文介绍了基于Qt框架的2048游戏开发实现。系统采用Windows10+QtCreator+MinGW开发环境,核心功能包括:1)通过4×4网格布局和QLabel子类实现数字块绘制;2)使用键盘事件处理移动合并逻辑,通过vector容器处理不同方向的数字移动与相加;3)实现游戏状态判断(达到2048胜利/无法移动失败)和重新开始功能。系统特色在于:采用面向对象设计,将游戏逻辑与界面分离;通过旋转矩阵统一处理四个方向移动;为不同数值块设置差异化视觉效果。该实现完整复现了2048游戏的核心玩法,展示了Qt在游
2025-08-01 01:09:40
841
原创 PyTorch环境搭建
本文介绍了安装CUDA和PyTorch的完整步骤:首先通过nvidia-smi查看显卡支持的CUDA版本(如12.9),下载对应CUDA工具包和cuDNN插件并安装;然后配置环境变量,从PyTorch官网获取安装命令(如支持CUDA12.8的pip安装指令);安装后需验证版本兼容性,通过torch.__version__和torch.version.cuda检查版本,并用torch.cuda.is_available()确认GPU是否可用。最后再次确认PyTorch版本是否正确安装。
2025-07-24 12:05:22
289
原创 Qt MinGW编译出现obj file too big问题
在CMake中添加-Wa,-mbig-obj编译选项的几种方法:1. 使用add_compile_options全局添加;2. 使用target_compile_options针对特定目标添加;3. 通过set命令设置链接器选项(不推荐);4. 使用环境变量(不推荐)。最佳实践是使用add_compile_options或target_compile_options,这些方法清晰且易于维护。注意该选项用于解决QtMinGW编译时出现的"objfile too big"问题。
2025-05-26 11:59:52
528
原创 Qt C++实现马的遍历问题
本项目通过C++和Qt5框架实现了一个基于中国象棋马的遍历问题的图形化解决方案。项目核心包括马的“日”字形移动规则、Qt5的图形界面设计、C++编程实现以及深度优先搜索(DFS)或广度优先搜索(BFS)算法的应用。通过chessboard.ui设计界面,Chessboard.h和chessboard.cpp实现逻辑,QPainter类绘制棋盘,QGraphicsView和QGraphicsScene实现交互显示。
2025-05-22 20:43:57
323
原创 Qt C++图书管理系统
本文介绍了一个基于C++和Qt框架开发的图书管理系统,旨在实现图书馆的日常管理功能,如用户登录、注册、图书借阅与归还等。Qt框架的跨平台特性使得该系统兼容Windows、Linux、MacOS等多种操作系统。系统利用Qt的GUI组件设计了用户界面,并通过数据库技术(如SQLite或MySQL)存储用户信息和图书数据。核心功能包括图书检索、借阅与归还、用户账户管理以及数据备份与恢复。开发过程中,C++的面向对象特性和Qt的信号与槽机制被充分利用,确保了代码的清晰和可维护性。此外,系统通过单元测试和集成测试保证
2025-05-22 20:18:14
587
原创 Qt for Android申请允许管理所有文件权限
在Android平板上使用Qt开发App时,文件删除操作受到操作系统严格的权限管理和沙盒机制限制。具体原因包括沙盒隔离机制、权限控制和分区存储。为解决这一问题,可以通过申请“允许管理所有文件”权限来实现。实现过程包括在AndroidManifest.xml中添加权限声明,并在Activity中根据设备Android版本选择性地请求权限。对于Android 11及以上版本,需调用Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION来请求权限。程序运行时会动态检查
2025-05-12 18:11:40
777
原创 TCP黏包解决方法
TCP客户端每100ms发送16006字节数据,但由于TCP的MSS限制,数据会被拆分为1440字节的小包传输,可能导致拆包和粘包现象。拆包指数据被分割为多个不完整包,粘包指多个数据包被合并为一个包,接收端难以处理。使用Qt编写TCP服务器时,readAll()函数读取的是接收缓冲区的全部数据,而非单个数据包,因此需要手动处理拆包和粘包问题。通过累加接收数据长度,判断是否达到16006字节,若未达到则继续接收,若超过则裁剪多余部分作为下一包数据的开头。该方法有效解决了TCP拆包和粘包导致的数据解析问题。
2025-05-09 10:39:03
275
原创 Qt5 Mac系统检查休眠
Qt5.10提供了多种方式来检测系统休眠和唤醒,尤其是在macOS上,我们需要利用Objective-C的`NSWorkspace`结合Qt的桥接机制来实现。例如,可以创建一个`SystemSleepMonitor`基类,定义`systemDidEnterSleep`和`systemDidWakeUp`的信号,然后分别为Windows/Linux和macOS实现相应的子类。在实际项目中,你可以根据运行的平台动态选择合适的子类,并连接对应的信号槽,从而实现跨平台的系统休眠和唤醒检测。
2025-04-03 10:01:52
301
原创 Qt for Android下QMessageBox背景黑色、文字点击闪烁
最近在基于Qt开发安卓应用的时候,在红米平板上默认QMessageBox出现之后,背景黑色,并且点击提示文字会出现闪烁,影响用户体验。最终发现是系统对主题适配不好导致的。
2025-02-27 11:31:15
592
原创 Qt信号与槽底层实现原理
在Qt中,信号与槽是实现对象间通信的核心机制,它可以让一个对象的状态变化通知其他对象,而无需让对象之间保持紧密的依赖关系。这个机制不仅提供了松耦合的通信方式,还允许灵活地在运行时动态地连接信号和槽。Qt的信号与槽机制并非在编译阶段直接绑定,而是在程序运行时通过Qt的元对象机制进行动态搜索和匹配。这种灵活的设计是通过元对象编译器(MOC)来实现的。
2025-01-21 10:11:02
275
原创 QTabWidget的每个tab居中显示图标和文本
使用QTabWidget,给每个tab添加了图标之后,文字和图标之间有间距,没有完美居中显示。遇到此问题,尝试了多种办法,均不理想,最终自定义QTabBar,重绘tab,完美解决。
2024-10-11 13:53:31
1170
原创 自定义QPushButton,通过设置icon,在不同状态下显示不同的图标
默认QPushButton设置icon后,当鼠标hove或者press时,图标不会变更为对应状态的图片。通过重写按钮,设置图标值,实现不同状态对应不同图标
2024-08-29 09:35:39
979
原创 PyQt5程序的打包和发布
在相应的文件夹中生成一个编译文件夹build,和一个存放exe文件的dist文件夹,双击exe文件即可运行。如果程序用到图片或者文件,则将这些文件一同放入dist文件夹中即可,压缩打包发布。普通Python程序由Python内部库提供,不包含第三方库模板。
2023-12-13 17:21:00
1328
原创 linux core文件调试方法
etc/profile 最后一行添加: ulimit -c unlimited。查看/data/my目录是否生成core文件。/etc/sysctl.conf 添加。4) 编译对应代码debug版本。如ddx xorg mesa等。创建保持core文件目录。三、gdb core文件。开启unlimited。
2023-09-27 10:02:49
1502
原创 win10+QT5.15+cryptopp562 完整配置开发
b、cryptopp562安装包下载,官网:https://www.cryptopp.com/,这里没选择最新的8.7是因为mingw-32编译后的库文件使用有问题,有错误,但是5.6用同样的方式编译就可以正常使用。拷贝编译后的libcryptopp562.a 和 cryptopp562.dll文件到lib目录。2、使用QT环境编译cryptopp562,解压源码包,命令行模式下:qmake -project生成 .Pro文件,修改内容:TEMPLATE = lib,7、编辑程序项目pro文件,
2023-08-30 10:48:55
2124
原创 c++实现java的SHA1PRNG算法
3).将sha1重置后,再调用sha1,传入字节流形式的key,生成字节流形式的key值。2).将加密的string字符串明文调用sha1哈希出。1)要加密的key明文:假设为dplyjc。
2023-08-30 10:27:36
1095
1
原创 Qt仿Win10计算器,并存mysql或sqlite
基于Qt编写的计算器,实现了以下功能:1.简单四则运算功能:用户可以通过计算机,实现简单的加、减、乘、除功能;2.连续四则运算功能:用户可以完成多个数的连续加、减、乘、除功能;3.运算完毕后继续运算功能:用户在完成一次运算,计算出结果后,可以在前期运算结果的基础上继续开展新的运算;4.清零功能:清除所有运算中间结果,等待开始新运算;5运算日志保存功能:能够将用户的输入的计算过程记录在数据库中,一次计算以用户点击“="按作为结束标志,将该次计算的表达式记录;成字符串,存储在数据库表中;
2023-08-19 10:24:10
1230
1
libexif编译后的文件包
2017-02-10
用英文单词模拟数学计算
2014-12-24
MainWindow.rar
2019-07-12
MinGW(含MySys)
2017-02-09
学生成绩管理系统.zip
2016-09-11
MinGW.part3
2017-02-09
VC++6.0_visual assist
2017-02-06
MinGW.part2
2017-02-09
Linux网络编程 part2
2015-02-02
Linux网络编程
2015-02-02
Linux网络编程 part3
2015-02-02
ubuntu-qtcreator-fcitx-qt5编译好的库
2023-08-02
马的遍历问题horse
2023-02-23
paintHistogram.rar
2020-06-18
quick terrain modeler破解版
2017-04-07
Java实现的迷宫
2017-04-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅