QT
文章平均质量分 76
QT编程
byxdaz
十年以上C/VC++开发经验。熟悉网络编程、数据库编程、数字图像处理与识别,熟悉软件工程和项目管理,熟悉linux C/C++开发。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
编译Qt5.15.2 qtwebengine模块
Qt WebEngine 是 Qt 框架中用于在应用程序中嵌入和显示现代网页内容的核心模块,基于 Chromium 项目构建。原创 2026-07-31 15:02:32 · 275 阅读 · 0 评论 -
Qt中将PDF转换成图片
在 Qt 中将 PDF 转换成图片,主要有以下几种主流方法,你可以根据你的 Qt 版本、项目需求和目标平台来选择。原创 2026-07-03 13:50:20 · 394 阅读 · 0 评论 -
Qt修改操作系统的日期与时间
是 Qt 中处理时区的核心类,它提供了时区偏移、名称、夏令时规则等信息,并能帮助你在 UTC 和本地时间之间进行准确转换。如果你手头的数据是 UTC,必须先转换为系统本地时间,否则会导致错误的偏移。可以存储为 UTC 或本地时间(Windows 通常存本地时间,Linux 推荐存 UTC)。:Windows 系统时间内部存储的是 UTC,你设置的日期也会被当作 UTC 日期。为了防止重启后时间丢失,设置好系统时间后,务必将其写入硬件时钟。在 Linux 系统中,系统时间内部存储的是 UTC 时间。原创 2026-05-20 13:53:28 · 723 阅读 · 0 评论 -
USB入门指南(libusb)
简单来说,libusb 是一个。传统的 USB 驱动开发往往需要深入操作系统内核,这带来了移植性差、开发复杂等问题。libusb 的出现解决了这些痛点,它让你可以在(也就是你的 Qt 或普通 C/C++ 程序里)直接与 USB 设备进行通信,而无需编写内核驱动代码。这极大地简化了开发流程,并让你的程序可以轻松地在 Linux、Windows、macOS 甚至 Android 上运行。原创 2026-04-08 09:03:07 · 971 阅读 · 0 评论 -
QT中USB入门(QtUsb)
是一个专为 Qt 开发者设计的跨平台 USB 通信模块,底层基于成熟的libusb-1.0和libhidapi库实现。它封装了 Windows、Linux、macOS 等不同平台的原生 USB API,提供统一的 Qt 风格接口,让开发者能够"一次编写,到处运行"。原创 2026-04-07 16:00:50 · 972 阅读 · 0 评论 -
GPIB入门指南
它为用户提供了一个统一的 I/O 接口,用于控制 GPIB、串口、USB、以太网/LXI、PXI 等多种总线接口的仪器。简单来说,它相当于一个硬件的“翻译层”,让程序员可以用同一套 API 函数与任何接口的仪器进行通信,无需关心底层的硬件差异。如果一切正常,你应该会在右侧的“响应”区域看到仪器返回的信息,例如制造商、型号等。std::cout << "设备响应: " << buffer << std::endl;std::cout << "连接仪器失败,请检查GPIB地址" << std::endl;原创 2026-04-07 14:15:20 · 1046 阅读 · 0 评论 -
Qt 开发中复制一个已有的 UI 窗体及其对应的 C++ 类
在 Qt 开发中,复制一个已有的 UI 窗体及其对应的 C++ 类通常涉及以下步骤。假设你有一个名为的界面文件,以及对应的和(如果使用的是基于 QWidget 的自定义类)。现在你想创建一个副本,命名为NewForm。原创 2026-02-28 09:00:51 · 667 阅读 · 0 评论 -
QT运行单进程实例
只运行一个实例原创 2026-01-08 16:43:28 · 476 阅读 · 0 评论 -
QT中获取window平板电量
cmd# 查看上次休眠/睡眠/唤醒时间# 查看系统唤醒历史。原创 2026-01-05 18:16:17 · 979 阅读 · 0 评论 -
Qt 中将 QWidget 改为模态的方法
exec()原创 2025-12-26 16:05:21 · 436 阅读 · 0 评论 -
在 QT Creator中调试Release程序
在 QT Creator Release 模式下调试,需要进行一些特殊配置。原创 2025-12-10 12:49:54 · 1420 阅读 · 0 评论 -
QT中使用第三方字体库(比如:思源黑体等)
Write-Host '字体缓存刷新成功' -ForegroundColor Green } catch { Write-Host '字体缓存刷新失败: $($_.Exception.Message)' -ForegroundColor Red }" >nul 2>&1。Write-Error "安装字体失败: $fontName - $($_.Exception.Message)"安装字体到系统font目录下,通过右键点击字体文件安装,安装后,重启Qt Creator,在UI编辑器中就可以使用该字体了。原创 2025-12-08 11:18:30 · 1896 阅读 · 0 评论 -
Qt中QMessageBox使用
/ 标准按钮组合QMessageBox::Ok // 确定QMessageBox::Open // 打开QMessageBox::Save // 保存QMessageBox::Cancel // 取消QMessageBox::Close // 关闭QMessageBox::Discard // 放弃QMessageBox::Apply // 应用QMessageBox::Reset // 重置QMessageBox::RestoreDefaults // 恢复默认。原创 2025-11-28 13:09:00 · 638 阅读 · 0 评论 -
Qt中Modbus协议
是一个基类,用于表示 Modbus 客户端(主站),具体的网络协议由派生类(如和)实现。物理层数据传输: 二进制格式校验: CRC16 校验地址范围: 1-247物理层数据传输: ASCII 文本格式(十六进制ASCII字符)起始符(0x3A)结束符CR LF校验: LRC 纵向冗余校验地址范围: 0-247qmake传输层: TCP/IP端口号: 默认 502协议标识: 0x0000 (Modbus协议)单元标识: 从站地址(兼容串行链路)无校验: 依赖TCP的可靠性。原创 2025-11-18 23:09:26 · 1867 阅读 · 0 评论 -
Qt中位操作
【代码】Qt中位操作。原创 2025-11-11 09:16:10 · 423 阅读 · 0 评论 -
Qt中日期/时间/时区类 (QDate, QTime, QDateTime,QTimeZone)
qDebug() << "UTC偏移:" << systemTimeZone.standardTimeOffset() / 3600 << "小时";qDebug() << "夏令时偏移:" << timeZone.daylightTimeOffset(dt) / 3600 << "小时";qDebug() << "原始时间(北京):" << beijingTime.toString("yyyy-MM-dd hh:mm:ss t");原创 2025-11-08 12:59:08 · 1217 阅读 · 0 评论 -
Qt中使用系统级全局热键
Qt 中实现系统级全局热键(含组合键)的几种方法:1、使用 QHotkey 第三方库2、平台特定API实现。原创 2025-11-06 09:45:51 · 706 阅读 · 0 评论 -
Windows Pad平板对 Qt 的支持
特性Qt 支持情况关键类/API备注点击/触摸完全支持默认模拟鼠标,可启用原生触摸手势完全支持高级抽象,开发效率高手写笔完全支持支持压力、倾斜等完整笔触信息虚拟键盘完全支持自动由系统管理,用于高级控制开箱即用,无需额外代码高DPI部分支持Qt 5.6+ 后已非常完善,需正确。原创 2025-10-12 14:23:55 · 1569 阅读 · 0 评论 -
QEvent 入门
QEvent 是 Qt 中所有事件类的基类。事件对象包含事件参数,Qt 的事件系统通过向 QObject 对象发送事件来处理各种用户交互和系统事件。cpp// 自定义事件类型public:private:cppQ_OBJECTpublic:protected:");QEvent是 Qt 事件系统的基础通过重写特定的事件处理函数来处理事件使用可以拦截和处理其他对象的事件可以创建自定义事件来实现特定的通信需求合理的事件处理可以创建响应灵敏的用户界面。原创 2025-10-11 08:56:57 · 406 阅读 · 0 评论 -
QT模型/视图架构入门
text属性类型描述objectNameQString对象名称模型类主要通过方法提供功能方法参数返回值描述rowCount()int返回行数(对于列表,列数固定为1)int返回1index()创建索引parent()返回无效索引方法参数返回值描述rowCount()int返回行数int返回列数index()创建索引parent()返回无效索引cppQ_OBJECTpublic:int age;// 初始化数据。原创 2025-10-10 08:54:48 · 1463 阅读 · 0 评论 -
QT 委托 (Delegate) 入门
cppQ_OBJECTpublic:// 必须重写的三个核心方法css/* 为树形视图定义基础样式 */原创 2025-10-09 08:54:40 · 836 阅读 · 0 评论 -
QTreeWidget 入门
cpp// 创建图标// 为项设置图标item->setText(0, "我的文件夹");child->setText(0, "我的文件");cpp// 为项添加按钮等其他控件item->setText(0, "带按钮的项");QPushButton *button = new QPushButton("点击我");原创 2025-10-04 14:49:53 · 1076 阅读 · 0 评论 -
QListWidget 入门
cpp// 创建带有图标的项目item->setText("自定义项目");item->setToolTip("这是一个提示");// 设置项目数据// 存储自定义数据// 创建QListWidgetItem// 设置item高度// 创建自定义widgetQString("项目 %1").arg(itemNumber),QString("这是第 %1 个自定义项目的描述").arg(itemNumber)// 添加到listWidget。原创 2025-10-03 09:10:01 · 1152 阅读 · 0 评论 -
Windows中焦点与软键盘
在Windows电脑中,通常不需要自动弹出软键盘。原创 2025-10-01 08:11:55 · 1417 阅读 · 0 评论 -
Qt操作Windows平板上摄像头
"支持" : "不支持");qDebug() << "对比度调节:" << (getCameraProperty(CV_CAP_PROP_CONTRAST) >= 0?"支持" : "不支持");qDebug() << "曝光调节:" << (getCameraProperty(CV_CAP_PROP_EXPOSURE) >= 0?qDebug() << "变焦功能:" << (getCameraProperty(CV_CAP_PROP_ZOOM) >= 0?" (后置)" : ""),原创 2025-09-30 08:59:25 · 1210 阅读 · 0 评论 -
QCamera模块入门
QCamera是模块中的一个核心类,它提供了一个高级别的、跨平台的 API,用于访问操作系统的摄像头硬件。它的主要目标是让开发者能够轻松地实现拍照、录像、预览摄像头画面等功能,而无需关心底层不同操作系统(如 Windows, Linux, macOS, Android, iOS)的具体实现细节。原创 2025-09-29 08:53:47 · 1114 阅读 · 0 评论 -
Qt键盘输入法的开源方案
/ 第一行:数字++i) {// 第二行:字母++i) {// 功能键。原创 2025-09-26 16:58:25 · 1537 阅读 · 0 评论 -
QTableWidget 控件入门
cpp// 添加按钮到单元格QPushButton *button = new QPushButton("操作");qDebug() << "按钮被点击";});// 添加组合框comboBox->addItems({"选项1", "选项2", "选项3"});// 添加复选框QCheckBox *checkBox = new QCheckBox("启用");原创 2025-09-20 13:55:58 · 667 阅读 · 0 评论 -
QT加密和哈希
需求推荐方案快速计算 MD5、SHA 等哈希值(内置,首选)简单的对称加密(AES)、非对称加密(RSA)、证书QCA(API 友好,功能全面)需要与现有 OpenSSL 代码集成或使用非常见算法直接使用 OpenSSL(强大但复杂)为应用程序提供 SSL/TLS 通信QSslSocket(Qt Network 模块内置) +QCA(用于证书操作)原创 2025-09-14 12:22:00 · 1446 阅读 · 0 评论 -
QHash使用
是 Qt 的一个通用容器类。它在一个哈希表中存储键值对(key-value pairs),基于键(key)来提供非常快速的查找、插入和删除操作。简单来说:它是 Qt 中对标准字典或哈希表的实现,类似于 C++ 标准库中的。如果你想使用自定义的类或结构体作为QHash的键,你需要做两件事:为该类型重载operator==。为该类型提供一个哈希函数qHash()。// 为 Employee 类型定义哈希函数// 将多个字段的哈希值组合起来是一种常见做法。原创 2025-09-14 12:00:08 · 976 阅读 · 0 评论 -
QMap使用
如果你想使用自定义的类或结构体作为QMap提供拷贝构造函数。提供重载的,因为QMap需要用它来排序。(可选,但建议)提供重载的。示例:使用自定义结构体作为键cppint id;// 必需的 operator<if (id!// 如果id相等,再用name比较// 可选的,但很有用的 operator==// 现在可以使用 MyKey 作为 QMap 的键if (myMap.contains({1, "Alice"})) { // 需要 operator==原创 2025-09-12 19:00:59 · 1259 阅读 · 0 评论 -
Qt 中日志级别
使用宏来定义一个类别。cpp// 在头文件中定义// 在源文件中实现。原创 2025-08-28 18:09:06 · 1084 阅读 · 0 评论 -
Qt中使用Microsoft SQL Server (MSSQL)数据库
类名作用描述连接管理代表一个数据库连接。用于创建、打开、关闭连接。QSqlQuerySQL 执行用于执行任意 SQL 语句(SELECT, INSERT, UPDATE, DELETE, 存储过程等)并浏览结果集。QSqlRecord记录封装封装了数据库记录(一行数据)的字段信息和值。QSqlError错误处理提供数据库操作过程中发生的错误信息。数据模型高级抽象,提供了一个可编辑的数据模型,用于自动读写单个表,常与QTableView配合使用。关系模型的扩展,支持外键和关联表。BLOB:使用。原创 2025-08-25 09:23:53 · 1583 阅读 · 0 评论 -
Qt中使用MySQL数据库
在循环中逐条插入并自动提交。原创 2025-08-23 08:53:00 · 1816 阅读 · 0 评论 -
Qt中实现异步阻塞等待应答常用方法
在Qt中实现异步阻塞等待应答(即发送命令后等待响应,但不阻塞主事件循环)通常有几种方法。原创 2025-08-22 09:06:54 · 936 阅读 · 0 评论 -
UPnP/SSDP入门
UPnP (Universal Plug and Play) 是一种网络协议,允许设备在局域网中自动发现和交互,而 SSDP (Simple Service Discovery Protocol) 是其核心发现机制。本指南将介绍 UPnP/SSDP 的基本概念和工作原理。原创 2025-08-21 09:11:14 · 1711 阅读 · 0 评论 -
QT 网络TCP编程入门
属性类型说明访问函数int最大等待连接数,超过此数的新连接将被拒绝int底层监听队列的大小(仅在某些平台有效)服务器监听的地址serverPortquint16服务器监听的端口qintptr服务器套接字描述符bool是否正在监听连接属性类型说明访问函数本地绑定的IP地址localPortquint16本地绑定的端口号远程主机的IP地址peerPortquint16远程主机的端口号peerNameQString远程主机名称qintptr底层套接字描述符state套接字当前状态error。原创 2025-08-18 08:58:18 · 1161 阅读 · 0 评论 -
QSharedPointer<QByteArray> 入门
线程安全的引用计数智能指针自动管理所指向对象的内存释放当最后一个引用被销毁时自动删除目标对象cpp// 使用自定义删除器qDebug() << "删除数据";delete obj;});优先使用::create()而非new直接构造多线程传递时保持数据不可变大型数据优先使用共享指针而非传值及时释放不再需要的引用配合信号槽实现线程安全通信。原创 2025-08-15 09:01:24 · 780 阅读 · 0 评论 -
QTimer、QElapsedTimer、QDeadlineTimer
QTimer 是 Qt 中用于定时执行操作的类,它提供了单次和重复定时器的功能。原创 2025-08-09 14:07:06 · 1869 阅读 · 0 评论 -
Qt 的对象线程亲和性规则
查阅 Qt 官方文档,如果类文档明确说明它是 thread-safe,则可以跨线程使用。如果父对象被移动到另一个线程,子对象也会一起移动。)本身是线程安全的,但多线程访问时仍需同步(如用。可以跨线程发送事件,Qt 会自动处理线程亲和性。子类都不是线程安全的,除非特别说明(如。Qt 的线程模型基于 QObject。,否则可能导致崩溃或未定义行为。,否则可能导致崩溃或未定义行为。可以将对象迁移到另一个线程。的子类,并且不是线程安全的。,不能在目标线程直接调用。以下是一个完整的跨线程。将其迁移到工作线程。原创 2025-08-09 10:25:41 · 1488 阅读 · 0 评论
分享