
Qt
文章平均质量分 78
Qt
@hdd
good good study, day day up
展开
-
QScreen 捕获屏幕(截图)
Qt框架提供的QScreen类为开发者提供了跨平台的屏幕操作解决方案原创 2025-03-28 15:20:48 · 768 阅读 · 0 评论 -
Qt实现HTTP GET/POST/PUT/DELETE请求
QNetworkAccessManager支持GET、POST、PUT、DELETE等HTTP方法。本文将手把手教你如何用Qt实现这些请求,并附完整代码示例。在现代应用程序开发中,HTTP请求是与服务器交互的核心方式。Qt作为跨平台的C++框架,提供了强大的网络模块。原创 2025-03-31 19:43:58 · 878 阅读 · 0 评论 -
Qt非阻塞延时实现
会导致线程阻塞,造成界面卡顿甚至程序无响应。测试环境:i7-10700K, Qt 5.15.2。在Qt开发中,当我们需要实现延时操作时,直接使用。:QDeadlineTimer需要Qt 5.8+:实际不会阻塞主线程,但会占用工作线程。:需要顺序执行但保持线程响应的场景。:所有界面更新操作必须在主线程执行。:跨线程操作时注意对象析构问题。:避免在循环中无限制处理事件。:根据需求选择合适精度方案。:需要精确控制的延时检测。:简单控制逻辑中的延时。:可与其他逻辑并行执行。:使用简单,线程安全。原创 2025-03-28 08:30:00 · 345 阅读 · 0 评论 -
QString高级操作与性能优化
作为核心字符串处理类,承担着文本操作、编码转换等重要职责。许多开发者仅使用基础功能,却忽视了其强大的高级特性。忽略BOM(Byte Order Mark)处理。等进阶技巧,助你写出更高效的Qt代码!支持所有Unicode字符。默认使用UTF-16编码。原创 2025-03-28 08:15:00 · 376 阅读 · 0 评论 -
QStandardPaths 获取系统标准路径
是Qt提供的一个静态工具类(位于QtCore模块),用于获取操作系统定义的标准路径。它屏蔽了不同平台间的路径差异,开发者无需手动拼接路径或编写平台判断代码,即可访问如文档目录下载目录临时目录等系统标准位置。原创 2025-03-28 08:00:00 · 1517 阅读 · 0 评论 -
深入浅出Qt属性系统:原理、使用与实践
Qt属性系统基于元对象系统(Meta-Object System),通过Q_PROPERTY宏和QVariant类型实现。它不仅为对象提供了动态属性的支持,还与信号槽机制、样式表、动画系统等核心功能深度集成。本文将带您全面解析Qt属性系统的实现原理,并通过示例代码演示其在实际开发中的应用。原创 2025-03-27 08:15:00 · 1162 阅读 · 0 评论 -
Qt 日志输出(重定向)
Qt框架提供了灵活的日志系统,支持从简单的控制台输出到复杂的自定义日志处理。本文将详细介绍Qt中五种常用的日志输出和重定向方法,并附上完整代码示例。原创 2025-03-27 08:00:00 · 440 阅读 · 0 评论 -
QT 程序图标、任务栏图标、窗口图标的设置方法
使用.ico格式(Windows)或.icns格式(macOS)。建议包含多个尺寸(如16x16、32x32、48x48等)。推荐工具:在线转换工具(如)或专业图标生成工具。原创 2025-03-26 07:00:00 · 351 阅读 · 0 评论 -
QLibrary 灵活加载动态库
在软件开发中,我们常会遇到这样的需求:希望在不重新编译主程序的情况下扩展功能,或者需要根据运行环境动态加载不同模块。这正是动态库(Dynamic Link Library, DLL / Shared Object, SO)大显身手的场景。qCritical() << "加载失败:""动态库加载失败");静态加载:程序启动时自动加载,占用内存多。// 原始方式(存在类型不安全风险)动态加载:运行时按需加载,节省资源。// 现代C++(编译期类型检查)// 使用类型安全的函数指针转换。原创 2025-03-25 14:19:01 · 601 阅读 · 0 评论 -
QProcess 启动外部进程
QProcess是Qt框架中用于启动外部程序和**进程间通信(IPC)**的核心类,继承自QObject。它为开发者提供了跨平台的进程管理能力,支持Windows、Linux和macOS系统。原创 2025-03-25 07:45:00 · 1047 阅读 · 0 评论 -
Qt 高效读写JSON文件,玩转QJsonDocument与QJsonObject
Qt框架为JSON处理提供了完整的解决方案,通过和QJsonArray三大核心类,轻松实现数据的序列化与反序列化。本文将详细介绍如何实现JSON文件的读写操作。原创 2025-03-24 14:42:34 · 1474 阅读 · 0 评论 -
QSettings 读写INI配置文件
本文将详细介绍如何使用QSettings实现INI文件的读写操作原创 2025-03-24 14:14:37 · 590 阅读 · 0 评论 -
QT获取时间日期的方法详解:从QDateTime到std::chrono的高效实践
本文深入探讨Qt框架中5种获取时间日期的高效方法,并附完整代码示例。原创 2025-03-24 12:04:23 · 1177 阅读 · 0 评论 -
QT原子变量:QAtomicInteger、QAtomicPointer、QAtomicFlag
类型选择三要素:操作类型(整型/指针)、性能需求、内存顺序要求简单原则:能用就不选QAtomicInt复合操作仍需锁:原子变量无法替代所有互斥锁(例如需要保护多个变量的关联操作)测试验证:使用ThreadSanitizer等工具验证原子操作的正确性。原创 2025-03-24 10:10:13 · 911 阅读 · 0 评论 -
Qt 实现波浪填充的圆形进度显示
m_waveColor代表波浪颜色,示例代码改变m_waveColor亮度绘制背景,可自由修改。水波效果由波长和振幅控制 “大振幅+长波长=平缓波浪”, “小振幅+短波长=密集波纹”。具体实现效果可自由调整,话不多说,先上效果图。原创 2025-03-15 18:23:31 · 328 阅读 · 0 评论 -
QTimer计时器的五大核心用法与进阶技巧
在Qt的异步编程体系中,QTimer是控制时间驱动逻辑的关键组件。本文将系统性地剖析QTimer的核心API及其黄金搭档类,并通过五种典型模式演示不同场景下的最佳实践,助你彻底掌握定时器的精髓。原创 2025-03-15 00:13:50 · 740 阅读 · 0 评论 -
深入解析 QObject::connect 的五种连接类型
类型线程安全执行方式典型场景✔️自动选择通用默认选项,GUI 组件交互、默认信号槽绑定❌同步立即单线程内高性能回调,接收者对象线程安全的场景✔️异步队列跨线程通信,如后台线程更新 UI,需要避免线程阻塞的场景✔️同步阻塞需要同步获取跨线程操作结果,线程间强制顺序执行防重复连接动态连接可能被多次调用的场景,替代手动 disconnect 的简化方案。原创 2025-02-25 09:00:00 · 560 阅读 · 0 评论 -
深入理解 QObject的作用
QObject 作为 Qt 库中所有对象的基类,其地位无可替代。几乎 Qt 框架内的每一个类,无论是负责构建用户界面的 QWidget,还是专注于数据处理与呈现的 QAbstractItemModel,均直接或间接继承自 QObject。这种继承体系赋予 Qt 类库高度的一致性和可扩展性,使得开发者能够基于统一的接口和特性进行开发,极大地提高了开发效率和代码的可读性。从底层实现来看,QObject 内部维护了一套元数据结构,记录了对象的各种信息,包括属性、信号、槽以及对象间的关系等。原创 2025-02-19 21:33:05 · 786 阅读 · 0 评论 -
深入解析Qt事件循环
在Qt框架中,事件循环是一种核心机制,用于管理和调度各种异步事件。它通过一个事件队列来组织和处理事件:当队列中有事件时,事件循环会依次从队列中取出事件并分发处理;这一过程会持续进行,直到事件队列为空,或者事件循环被显式中断。事件的来源多种多样,包括用户输入(如鼠标点击、键盘按键)、系统信号(如窗口重绘、资源变更)、网络请求响应、定时器触发等。Qt通过强大的事件处理机制和信号槽系统,将这些事件与具体的操作逻辑紧密绑定,使得开发者能够以一种高效且简洁的方式实现复杂的交互功能。while (!原创 2025-02-17 09:26:57 · 1383 阅读 · 0 评论 -
深入理解 Qt 信号与槽机制:原理、用法与优势
槽函数的声明使用public slots、protected slots或private slots关键字,其定义与普通 C++ 函数类似。signals:// 声明一个槽函数,参数与信号一致Qt 的信号与槽机制是一种强大而灵活的对象间通信方式,它通过元对象系统实现了信号的发射和槽函数的自动调用。信号与槽机制具有松耦合、异步通信、事件驱动编程、可扩展性和多线程支持等诸多优势,使得 Qt 开发更加高效、便捷和可靠。原创 2025-02-12 21:59:30 · 1127 阅读 · 0 评论 -
QML | 自定义圆形图片按钮
import QtQuick 2.12import QtQuick.Controls 2.12//自定义圆形图片按钮Rectangle { id:roundButton width: 30 height: width radius: width / 2 property url imageUrlHover: "" property url imageUrlNormal: "" // 图片路径 property color backco.原创 2021-06-01 15:59:42 · 1130 阅读 · 0 评论 -
QML | 实现一个转圈等待控件
//RotatingWait.qmlimport QtQuick 2.7import QtGraphicalEffects 1.0Item { Rectangle { id: rect width: parent.width height: parent.height color: Qt.rgba(0, 0, 0, 0) radius: width / 2 border.width: wi...原创 2021-05-26 10:01:41 · 1492 阅读 · 0 评论 -
Qt on android 蓝牙开发(控制小车)
因为要做一个用蓝牙控制小车的app,就用着QT搞了下,网上关于QT蓝牙开发的资料比较少,我在这里记录下过程希望对看到了人有所帮助首先在项目文件里添加QT += bluetooth这样就可以用QT关于蓝牙的一系列类了,接下来在添加头文件#include <QtBluetooth/qbluetoothglobal.h>#include <Qt...原创 2018-05-23 21:34:00 · 1688 阅读 · 3 评论 -
QT 实现在QLabel上画图
QT之所以不能再任意控件上绘图是因为QT的事件过滤器把控件的绘图事件给过滤了。在paintevent()函数中,通常需要设置QPainter对象,创建QPainter对象的同时需要指定绘图设备,即继承自QPainterDevice的子类作为绘图设备,绘制出来的图形将在这个设备上进行显示,Qt一共提供了4个这样的类,分别是QPixmap,QBitmap,QImage,和QPicture...原创 2018-04-12 20:49:00 · 417 阅读 · 0 评论 -
QT生成随机数
QT生成随机数和C语言差距不大,C语言用srand()和rand(),QT是用Qsrand()和qrand();QT生成随机数的格式是:qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));qrand();这里因为有QTime()所以要加头文件#include<QTime>,而qsrand和qrand这两个函数则在#inc...原创 2017-09-15 19:57:00 · 198 阅读 · 0 评论