QT5使用QFtp的详细步骤
目录1、QFtp编译1.1 下载1.2 修改1.3 编译1.4 部署2.5 使用客户端1、QFtp编译
1.1 下载
下载QFtp源码,https://github.com/qt/qtftp
git clone https://github.com/qt/qtftp.git
1.2 修改
打开qt工程,修改qftp.pro文件中框选的部分,修改为下图所示。修改qftp.h文件的qurlinfo.h头文件,改为下图,该头文件路径有问题
CON ...
Qt中QUdpSocket类的简单使用详解
目录QUdpSocket类的简单使用一、发送端二、接收端QUdpSocket类的简单使用
下面我们用一个做一个简单的例子。
一、发送端
发送端界面:
发送端代码:
.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QUdpSocket>
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE ...
Qt实现窗口阴影效果的三种方法
目录一、前言:光影之于界面的妙用二、基础原理:阴影实现的三大法门1. QGraphicsDropShadowEffect - 简单易用的光影魔术2. 九宫格绘制法 - 精准控制的艺术3. 透明窗口+背景图法 - 极致视觉体验三、进阶技巧:阴影的七十二变1. 动态阴影效果2. 多重阴影叠加四、实战案例:现代化UI阴影应用案例1:浮动操作按钮(FAB)案例2: ...
C++ spdlog日志库示例详解
目录一、spdlog日志库详解1. 概述与核心优势2. 核心概念3. 基本用法4. 高级用法与特性5. 性能考量与最佳实践6. 编译与依赖7. 总结二、库的下载与编译三、示例1、测试代码2、运行结果3、功能说明:一、spdlog日志库详解
C++的 spdlog 日志库。这是一款高性能、功能丰富且易于使用的开源日志库。
1. 概述与核心优势
高性能: ...
Visual Studio 2026的安装教程(图文)
目录前言一、安装 Visual Studio 2026选择社区版进行下载:二、开始使用前言
2025年11月,微软正式发布 Visual Studio 2026,将 AI 深度融入开发全流程,取代 VS2022 依赖插件的基础 AI 辅助,性能上 VS2026 大幅优化,大型解决方案加载速度显著提升,像 20 多个微服务的方案加载时间从 VS2022 的 3 分钟缩减至 45 秒,UI ...
C++通过 Py_Initialize实现对Python的嵌入调用
目录为什么要嵌入 Python核心流程图第一步:环境配置第二步:最简实现:Hello World第三步:进阶——调用 Python 函数并传递参数1. 准备 Python 脚本 (script.py)2. C++ 调用代码核心 API 详解避坑指南(经验总结)总结在现代软件开发中,性能(C++)与灵活性(Python)的结合是许多大型项目的首选方案。无论是游 ...
C++实现生产者与消费者模式方式
目录多线程工作池线程安全保障任务分发逻辑总结多线程工作池
创建workerCount个工作线程(示例中为 3 个),每个线程执行相同的workerLoop逻辑。线程通过condition_variable竞争任务队列中的任务,确保任务被均匀分发。
线程安全保障
任务队列的读写仍通过std::mutex保护,避免多线程竞争导致的数据错乱。cv.notify_one()每 ...
C++中值传递时触发拷贝构造函数的完整过程
目录一、值传递触发拷贝构造函数的完整过程二、代码示例三、关键细节拆解四、常见误区澄清五、总结当函数的参数是类的对象(而非指针/引用)时,调用函数传递参数的过程就是值传递,此时编译器会自动调用拷贝构造函数,创建一个实参的“副本”作为函数的形参。
一、值传递触发拷贝构造函数的完整过程
可以把这个 ...
C++ ADL(参数依赖查找)问题及解决方案
目录C++ ADL(参数依赖查找)问题详解1. ADL基础概念1.1 什么是ADL?2. ADL的工作原理2.1 查找规则2.2 关联命名空间和类3. ADL引发的问题3.1 意外的函数调用3.2 std::swap的ADL陷阱3.3 运算符重载的ADL问题3.4 隐藏的依赖问题4. 解决方案4.1 使用完全限定名4.2 使用括号禁用ADL4.3 使用函数指针强制类型4.4 通用swap模式4.5 ...
pthread_once函数使用场景与原理
目录函数原型核心作用与原理典型使用场景1. 全局资源的初始化2. 单例模式实现3. 延迟初始化(Lazy Initialization)4. 库的初始化关键注意事项替代方案对比总结pthread_once 是 POSIX 线程库中的一个函数,主要用于确保某个初始化操作在多线程环境中只执行一次,即使多个线程同时尝试执行该操作。其核心设计目标是提供线程 ...
C语言逗号运算符的具体使用
目录一、逗号运算符是什么?二、逗号运算符的语法和优先级三、逗号运算符的应用场景四、逗号运算符与逗号分隔符的区别五、逗号运算符的求值顺序六、逗号运算符的类型和值七、逗号运算符的典型用例1. 将多条表达式写成一个表达式2. for 循环多个变量迭代八、使用逗号运算符的注意事项九、经典逗号运算符误区示例十、你不知道 ...
Qt中QMessageBox使用小结
目录1.基本消息框简单信息提示2.带按钮的消息框基本按钮配置3.自定义消息框4. 按钮(默认和自定义)常用按钮类型带图标的自定义按钮5. 图标(默认和自定义)默认图标自定义图标6. 长文本显示自动换行(默认行为)手动添加换行符使用 HTML 标签控制格式设置固定宽度的消息框使用 setText 和 setInformativeText 组合超长文本 ...
Qt实现文件拖拽打开加载的示例详解
目录Qt实现文件拖拽加载基本实现原理基本实现步骤1. 启用拖拽接受2. 重写拖拽事件处理函数完整示例代码高级特性1. 自定义拖拽视觉效果2. 多文件处理注意事项Qt 拖拽功能扩展:程序间拖拽和控件间拖放1. 接受其他程序的拖拽基本文件拖拽(跨程序)支持多种MIME类型2. 控件之间的拖放启用控件拖放功能自定义列表控件拖放3. 自 ...
QTCreator中release版本如何断点调试
常用QT开发的伙伴们,如果遇到工程项目依赖项非常多的情况可能会遇到:
依赖项是release版本,且只有release版本,但是在qt中release版本打断点时失败无法断点调试
解决方法为在pro文件中增加下面四行:(每行都需要不能少哦!)
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
QMAKE_LFLAGS_RELEASE = $$Q ...
VSCode多根工作区功能实现
目录🖥️1. 什么是多根工作区?2. 如何创建和使用多根工作区2.1 创建多根工作区2.2 打开和关闭工作区3. 多根工作区的核心结构和配置4. 多根工作区的优势和适用场景4.1 主要优势4.2 典型适用场景5. 使用技巧与注意事项6. 多根工作区 vs. 其他方案7. 总结VS Code 的多根工作区(Multi-root Workspace)功能允许在一个 VS Code ...
源码解析C++20新特性如何简化线程超时取消
目录为什么需要超时控制Golang实现超时控制C++中的典型超时控制实现C++20带来的简化总结C++20中增加了很多重量级新特性,它不仅带来了ranges、concept和协程,也为多线程编程带来了jthread和stop_source这些强力辅助。利用这些新特性,我们可以更高效地编写并发程序。
今天要说的就是利用jthread和stop_source来简化线程超 ...
C++ sort()与stable_sort()使用指北(附示例代码)
目录1、排序的稳定性是个什么玩意2、到底谁更稳定3、它们内部的实现方式4、小结5、示例代码总结 在 C++ 标准库中,std::sort() 和 std::stable_sort() 都用于对容器中的元素进行排序,但二者最根本的区别在于稳定性。
1、排序的稳定性是个什么玩意
如果两个元素相等(比较结果为等价),排序后它们的相对顺序与原序列 ...
C语言利用数组处理批量数据的方法
目录一、引言二、数组的本质与内存模型1. 什么是数组?2. 数组的声明与初始化规则(1)基本语法(2)初始化方式三、一维数组:批量数据的基础操作1. 输入与输出(带健壮性检查)2. 常见批量处理任务(1)求和、平均值、最值(2)查找元素(3)排序(冒泡排序示例)四、二维数组:表格与矩阵处理1. 声明与内存布局2. 初始化 ...
C++并查集的原理与使用方法
目录一、并查集的概念二、并查集的实现三、算法题中的应用总结一、并查集的概念
在一些场景中,需要将n个不同元素划分为一些不相交的集合。开始时,每个元素各成一个元素,然后按一定的规律将属于同一组的元素合并。这个过程中需要反复用到查询一个元素是否属于某个集合的算法。适合用于这种场景的数据结构是并查集(Union- ...
C++中显示声明与隐式声明的使用与区别小结
目录显示声明隐式声明显示声明和隐式声明区别在C++中,声明(declaration)是告诉编译器标识符的类型和名称的过程。根据声明的方式,可以分为显示声明(explicit declaration)和隐式声明(implicit declaration)。下面分别解释这两种声明方式及其使用场景。
显示声明
在类声明中只给出成员函数的原型,而将成员函数的定义 ...