
Qt框架、MFC框架高级编程
文章平均质量分 54
跟我学成为Qt大牛!
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
程序员乐逍遥
15年C/C++跨平台开发资深程序员、想跟我学编程的可以观看我精心录制的视频课程!
展开
-
C++ Qt框架开发的程序添加自动更新功能
由于直接替换正在运行的程序文件本身是一个挑战(因为操作系统通常会锁定正在执行的文件),因此需要一些技巧来实现这一目标。多线程下载将一个大的文件分成多个小的块,每个块由一个线程负责下载。当所有线程都完成各自的下载任务后,再将这些小块文件合并成最终的文件。文件分割 :根据文件的大小,将其分割成多个分块(chunks),确定每个分块的起始和结束字节。下载并记录进度 :每个线程在下载时,需要记录当前已下载的字节数,以备后续的断点续传。文件合并 :所有分块下载完成后,需要将分块文件按照顺序合并成完整的文件。原创 2025-05-15 09:28:36 · 129 阅读 · 0 评论 -
Qt5.14.2 链接 MySQL 8.4 遇到的问题
"Plugin caching_sha2_password could not be loaded: 找不到指定的模块。Library path is 'caching_sha2_password.dll' QMYSQL: Unable to connect"修改my.ini文件。原创 2025-05-12 23:50:33 · 382 阅读 · 0 评论 -
Qt解决自定义窗口样式不生效问题
方法三:重新实现QWidget的paintEvent函数时,使用QStylePainter绘制。将类继承QWidget 改成继承 QFrame。原创 2025-05-10 19:37:24 · 203 阅读 · 0 评论 -
Qt 的信号与槽机制依赖元对象系统(Meta-Object System)实现
在 Qt 中,信号和槽之间的连接主要通过 类及其相关的私有类进行管理。每个 实例都维护着一个指向其 的指针,该对象包含了有关类的所有元信息,包括信号、槽等。此外,还有一个关键的数据结构用于存储信号与槽之间的连接信息,即 结构体。 是 Qt 内部使用的一个结构体,用于表示单个信号到槽的连接。它通常包含以下字段:QMetaObject:包含类名、父类信息、属性列表、方法列表(包括信号和槽)、信号与槽的元信息等。它是 Qt 元对象系统的核心。QObjectPrivate: 类的私有部分,包含了一些对开发者原创 2025-04-30 11:29:27 · 116 阅读 · 0 评论 -
Qt 下载的地址集合
Qt 6 安装下载在线安装包。Qt 下载离线安装包。原创 2025-04-22 14:20:42 · 153 阅读 · 0 评论 -
string 与 wstring 的字符编码
下面的 wchar_t unicode[256] = L"好人";下面的 const char* utf8String = u8"好人";下面的 char ansi[256] = "好人";原创 2025-02-09 00:08:57 · 176 阅读 · 0 评论 -
C++ 字符串编码转换
UTF8 的string 转 UTF16 的 wstring。// 获取 UTF-16 字符串所需的缓冲区大小。// 分配缓冲区并执行转换。原创 2025-02-08 22:15:44 · 196 阅读 · 0 评论 -
MFC 使用 32位带Alpha通道的位图
32位带Alpha通道的位图指的是图像中的每一个像素都使用了32位来表示颜色信息,这种格式通常被称为RGBA(Red,Green,Blue,Alpha)。在计算机图形学中,RGB模型是使用最广泛的色彩模式,通过红(Red)、绿(Green)、蓝(Blue)三种基本颜色的不同强度组合来表示各种颜色。这种情况下,前景颜色与背景颜色会根据Alpha值进行混合,Alpha值越低,背景颜色的影响越大;先看我的原始24位图片,RGB三个颜色各占8位(256色),所以是24位。PS文件-》存储为。原创 2025-01-20 14:50:40 · 234 阅读 · 0 评论 -
VS2022 Release调试的时候没有命中断点
如果你只有Release ,调试的时候没法命中,解决方法如下:原创 2025-01-17 14:21:05 · 317 阅读 · 0 评论 -
PyQt5 多个按钮 单选效果
接下来代码部分,全部加到一个QButtonGroup ,并且设置互斥。样式表也处理一下,因为 被单选的是 checked。我们经常需要多个按钮互斥选择一个,如何达到效果?界面设计,先直接上QToolButton。当按钮点击的时候,响应。原创 2024-12-29 16:39:46 · 129 阅读 · 0 评论 -
Qt5 中 QGroupBox 标题下沉问题解决
我们设置了QGroupBox 样式之后,发现标题下沉了,那么如何解决呢?原创 2024-12-29 16:31:55 · 352 阅读 · 0 评论 -
VS2022 中的 /MT /MTd /MD /MDd 选项
其实理解起来就是静态库和动态库的区别!静态链接(/MT和/MTd)简化了部署过程并减少了对环境的依赖,但可能导致较大的二进制文件和内存占用。动态链接(/MD和/MDd)则在部署时需要确保正确版本的运行时库DLL文件也被安装在目标系统上,但可以节省资源并便于库文件的更新和维护。原创 2024-12-24 14:35:08 · 584 阅读 · 0 评论 -
Qt Creator 里面设置MSVC 为 utf-8
在使用 Qt Creator 和 MSVC(Microsoft Visual C++)编译器进行开发时,我们可能会遇到中文乱码的问题。这通常是由于编码设置不正确导致的。这里的原理实际上是 为 MSVC 编译器添加和参数,确保源代码和执行文件都使用 UTF-8 编码可以使用 /utf-8选项将源字符集和执行字符集指定为使用 UTF-8 编码的字符集。它等效于在命令行上指定 /source-charset:utf-8 /execution-charset:utf-8。原创 2024-12-09 15:51:12 · 772 阅读 · 0 评论 -
Qt6 CMakeLists.txt文件详解
到这里,基本清晰了!原创 2024-11-17 15:12:45 · 225 阅读 · 0 评论 -
使用 QButtonGroup 类管理按钮组,可单选
是一个用于管理一组按钮的类。它可以确保在一组按钮中只有一个按钮被选中,这在创建单选按钮组时非常有用。可以管理QCheckBox等类型的按钮。参数:button: 要添加的按钮。id (可选): 按钮的唯一标识符,默认值为 -1,表示自动分配 ID。说明: 将按钮添加到按钮组中。参数: button 是要从按钮组中移除的按钮。说明: 从按钮组中移除按钮。返回值: 返回一个包含按钮组中所有按钮的列表。说明: 获取按钮组中的所有按钮。原创 2024-11-16 17:17:25 · 294 阅读 · 0 评论 -
解决Qt6下载安装速度慢的问题
【代码】解决Qt6下载安装速度慢的问题。原创 2024-10-18 08:58:08 · 1819 阅读 · 6 评论 -
warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存 为 Unicode 格式以防止数据丢失
使用VS20XX 报了上面这个错误,编码问题导致的!文件编码为gbk,GB312 或者 utf-8withbom源字符集是用于解释程序源文本的编码。原创 2024-09-12 15:27:27 · 2410 阅读 · 0 评论 -
打开MFC项目时:fatal error RC1015: cannot open include file ‘winres.h‘
发现 项目中 Resource.h文件中有这样一个定义:#define IDCANCEL 1010。这里把SDK 改为旧的版本,里面就有这个头文件了。原创 2024-09-11 14:37:44 · 532 阅读 · 0 评论 -
Qt 多个按钮,响应同一个点击事件
【代码】Qt 多个按钮,响应同一个点击事件。原创 2024-08-31 21:04:23 · 591 阅读 · 1 评论 -
Qt中的弹簧:QSpacerItem的用法
是一个抽象的布局项,它不直接绘制任何内容,但是可以占据空间。它通常被用作布局中的填充物,以确保其他界面元素之间有足够的间隔,或者在界面元素较少时,使界面看起来更加平衡。原创 2024-07-17 12:05:07 · 1954 阅读 · 0 评论 -
深入理解Qt中的QSizePolicy 类 : Fixed Expanding MinimumExpanding Minimum Preferred
使用函数来设置控件的最小宽度和高度。如果控件的包含Minimum或策略,这个最小尺寸将被考虑。使用函数来设置控件的最大宽度和高度。如果控件的包含Maximum策略,这个最大尺寸将被考虑。你可以使用方法来设置一个部件的尺寸策略。例如:按钮在水平方向上是扩展的,这意味着它会尽可能占据更多的空间;而在垂直方向上是固定的,意味着它的高度不会改变。原创 2024-07-17 10:59:19 · 740 阅读 · 0 评论 -
QTableWidget 中为 每一行添加 右键菜单
是 Qt 中的一个方法,用于设置一个 QWidget 子类(如 QPushButton, QLabel, QTableWidget 等)的上下文菜单策略。这个方法决定了上下文菜单(context menu)是如何被触发的,以及是否允许用户自定义菜单。信号,其中包含鼠标点击位置的信息。你可以在信号的槽函数中使用这个位置信息来显示你自己的上下文菜单。或任何其他 QWidget 子类将不会自动显示菜单。策略时,你必须自己处理上下文菜单的显示。原创 2024-07-15 15:45:55 · 822 阅读 · 0 评论 -
C++ STL中的std::remove_if 的用法详解
是C++ STL中头文件的一部分,它用于从容器中移除所有满足给定谓词(即判断条件)的元素。值得注意的是,并不会直接删除元素,而是将不满足条件的元素移到容器的前面,返回一个新的迭代器指向第一个应被删除的元素。因此,为了完全删除这些元素,我们需要配合容器的erase成员函数使用。假设我们有一个Student类,包含姓名、年龄和成绩等属性,我们的目标是从一个中移除所有成绩低于60分的学生。首先,定义Studentpublic:int score;// 用于输出学生信息int main()原创 2024-07-15 15:38:19 · 637 阅读 · 0 评论 -
QButtonGroup 类的妙用 -按钮组的管理与控制
无论是单选按钮(`QRadioButton`)还是复选框(`QCheckBox`),`QButtonGroup`都能帮助我们轻松地控制和监听这些按钮的状态变化。`QButtonGroup`主要用于将多个`QRadioButton`或`QCheckBox`组合在一起,形成一个逻辑上的组。`QButtonGroup`提供了多种信号,如`buttonClicked(int)`, `buttonPressed(int)`, 和`buttonReleased(int)`,这些信号可以用来响应按钮的各种状态变化。原创 2024-07-06 14:22:43 · 308 阅读 · 0 评论 -
使用 iconfont.ttf文件保存多个图标文件,并且像文字一样使用代码绘制出来
这里的多个图标其实是存储在 iconfont.ttf文件中。这个文件里面的图标对应的编码。原创 2024-07-04 21:49:22 · 366 阅读 · 0 评论 -
交叉编译中的 --build、 --host和 --target
在交叉编译中比较常见的一些参数就是build、host和target了,正确的理解这三者的含义对于交叉编译是非常重要的,下面就此进行解释。表示针对 64 位 x86 架构(也称为 AMD64 或 x86_64)的个人电脑上的 GNU/Linux 系统。./configure --build=编译平台 --host=运行平台 --target=目标平台。:表示针对小端字节序的 MIPS 架构的 GNU/Linux 系统。:表示针对 PowerPC 架构的 GNU/Linux 系统。原创 2024-06-30 11:10:38 · 661 阅读 · 0 评论 -
在Ubuntu 18.04.6 LTS 交叉编译生成Windows 11下的gdb 8.1.1
最后在 build/gdb目录下找到你需要的gdb.exe。最后,放到windows 11 下试试效果。2. 下载 gdb 8.1.1源码。产生Makefile文件。1. 安装mingw。原创 2024-06-29 22:39:16 · 334 阅读 · 0 评论 -
高性能STL库 EASTL 、高性能JSON库
兄弟们,对STL要求性能高的可以试试这个EASTL库!原创 2024-06-24 22:41:20 · 176 阅读 · 0 评论 -
Qt C++中使用QFutureWatcher 等待多个异步任务 执行完成
在Qt开发中,处理耗时任务而不会阻塞主线程(通常负责图形用户界面的更新)是非常重要的。Qt提供了多种机制来实现这一点,其中结合是处理并等待多个异步任务完成的一种强大方法。下面我们将详细解析一段代码,该代码演示了如何使用来确保在所有耗时任务完成后再继续主线程的执行流程。原创 2024-06-21 13:30:53 · 583 阅读 · 0 评论 -
Qt 创建左侧图标和右侧文字的显示的几种方法
简介:当标准的Qt组件不能满足特定的布局需求时,我们可以创建一个自定义的QWidget子类来实现更复杂的布局效果。实现步骤创建自定义类首先,定义一个新的QWidget子类,比如。初始化UI组件在构造函数中,添加图标标签和文本标签,并设置其样式和布局。3{6// 图标大小1011 textLabel->setText("自定义组件");12// 文本与图标垂直居中对齐17}使用自定义组件。原创 2024-06-21 13:20:56 · 853 阅读 · 0 评论 -
VS2022 使用CMake 设置调试
其中 "name": "haha" 为 调试名,指定运行时,dll的搜索目录!原创 2024-06-16 21:31:21 · 1246 阅读 · 0 评论 -
VS2022 使用C++访问 mariadb 数据库
【代码】VS2022 使用C++访问 mariadb 数据库。原创 2024-06-12 14:22:48 · 462 阅读 · 0 评论 -
VS2022使用C语言代码访问MariaDB数据库
第三步,配置VS2022。原创 2024-06-12 09:27:17 · 390 阅读 · 0 评论 -
MySQL Connector/C++ 和 MySQL Connector/ODBC 的区别
选择使用哪一个取决于你的具体需求,如果你正在使用C++并且希望获得更好的性能和C++友好的接口,MySQL Connector/C++可能是更好的选择。- MySQL Connector/C++ 提供了面向对象的编程接口,它是用C++编写的,提供了C++特有的类和对象来与MySQL数据库进行交互。- MySQL Connector/ODBC作为基于标准的产品,也有良好的社区支持,但由于它是跨语言的,可能在特定语言环境下的资源不如Connector/C++丰富。原创 2024-06-12 09:18:56 · 976 阅读 · 0 评论 -
软件架构x86 、 x86_64、 arm64、aarch64 、PowerPC架构、MIPS架构、RISC-V架构
RISC是一种执行较少类型计算机指令的微处理器,它能够以更快的速度执行操作,使计算机的结构更加简单合理地提高运行速度,相对于X86 CPU架构具有更加均衡的性能功耗比。,CISC指令集的每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。i386指的是Intel 386处理器的型号,它是Intel x86架构的一部分,而x86是一种广泛使用的处理器架构,用于PC和服务器等设备。(IA-64):由Intel和HP合作开发的处理器架构,用于高性能计算。原创 2024-06-08 16:41:43 · 983 阅读 · 0 评论 -
make 中 DESTDIR 和 --prefix 的区别
这两个示例分别展示了如何使用两种流行的构建系统( + 和 + )来编译和安装软件,并解释了 和 这两个选项的作用。这个命令运行 脚本,它是 生成的,用于检测系统环境并创建适当的 。这里: 指定了软件安装的基本目录。这意味着软件的可执行文件、库文件、头文件等将安装到 目录下及其子目录中。如果不指定 ,则默认安装到 。这个命令使用 工具来编译软件。 是一个选项,表示 可以同时运行8个作业(jobs),这样可以加快编译过程,利用多核处理器的优势。这个命令执行 目标,根据 将编译好的软件安装到原创 2024-06-05 21:51:51 · 536 阅读 · 0 评论 -
GNU Linux 下安装目录的规范
官方链接。原创 2024-06-05 21:27:27 · 215 阅读 · 0 评论 -
Windows Linux下查看静态库,动态库各种命令的总结
【代码】Windows Linux下查看静态库,动态库各种命令的总结。原创 2024-06-05 17:24:17 · 371 阅读 · 0 评论 -
检查用户是否在错误的目录中运行了CMake命令
但是有一些不熟悉CMake的依然会直接在当前目录配置,比如 CMake .那么我们如何在CMakeLists.txt 进行检测,避免这种行为呢?这样可以避免 生成的一些文件污染 代码目录。原创 2024-06-05 15:10:12 · 97 阅读 · 0 评论 -
Qt 5.14.2 报错 qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
OpenSSL是一个开源的软件库,用于实现安全套接字层(SSL)和传输层安全性(TLS)协议,以及用于加密和解密数据的一般加密功能。:这个DLL提供了OpenSSL的加密库,它包含了各种加密算法和哈希函数,例如AES、RSA、SHA-1等。:这个DLL文件包含了OpenSSL的加密库,提供了各种加密和哈希算法,如RSA、DSA、AES、SHA等。在现代的应用程序中,如果你需要使用OpenSSL的功能,应该确保使用的是最新版本的DLL文件,以获得更好的安全性和兼容性。将这两个dll拷贝到对应的。原创 2024-06-03 20:09:55 · 578 阅读 · 0 评论