
Qt
文章平均质量分 67
Qt实战笔记
优惠券已抵扣
余额抵扣
还需支付
¥69.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
艺高机器人编程
没有人不爱惜他的生命,但很少有人珍视他的时间!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Qt】使用 QxORM 清空SQLITE数据库后,自增ID未归零
摘要:在Qt项目中使用QxORM操作SQLite数据库时,清空表后ID未归零的原因是SQLite通过sqlite_sequence表管理自增ID。解决方法包括:1)手动重置sqlite_sequence表;2)在QxORM映射中关闭自增(pId->setAutoIncrement(false))。分析源码发现QxORM默认将整型主键设为自增,通过QxDataMemberX::initId()实现。非主键字段的初始化则调用initData()方法。原创 2025-07-11 22:16:03 · 51 阅读 · 0 评论 -
【Qt】在windows环境下,配置QtCreator中的clang-format
在Ubuntu上,QtCreator中配置clang-format,参加博客:在Windows下如何配置,请查看下面的博客。原创 2025-07-04 16:16:11 · 112 阅读 · 0 评论 -
【Qt】QxORM无法删除和更改主键值为0的行,否则报错:invalid primary key
QxORM框架在处理主键值为0的数据时会出现"invalid primary key"错误,原因是其内部验证逻辑认为数值型主键值不能为0。通过源码分析发现,QxORM在deleteById、fetchById和update操作中会检查主键有效性,数值型主键值若为0则判定为无效。这是由于数据库自增主键通常从1开始,允许0值可能导致不一致性问题。解决方法建议:对于主键值为0的数据操作,直接使用QSqlQuery执行原生SQL语句,避免使用QxORM接口。文中提供了使用QSqlQuery进行删原创 2025-07-04 19:30:00 · 70 阅读 · 0 评论 -
【Qt】QStateMachine状态机-对状态机分组、历史状态,实现复杂状态机
摘要 本文介绍了Qt状态机中状态分组和历史状态的使用方法。通过将相关子状态分组到父状态中,可以简化状态跳转逻辑,避免重复定义多个子状态间的相同跳转条件。示例展示了如何创建3层父状态及各自子状态,实现父状态间跳转、子状态内部跳转以及跨组子状态跳转。同时解释了QHistoryState的使用,包括创建历史状态、设置默认状态以及区分浅历史(ShallowHistory)和深历史(DeepHistory)两种类型。历史状态功能可以保存并恢复之前的状态位置,增强状态机的灵活性。原创 2025-06-14 22:58:22 · 323 阅读 · 0 评论 -
【Qt】QStateMachine状态机-实现播放按钮状态切换
本文介绍了使用Qt的QStateMachine实现状态机的基本方法。通过播放控制按钮示例,展示了如何创建状态机、定义状态(停止、播放、暂停)、设置状态转换条件(按钮点击触发)以及配置状态属性(按钮文本、禁用状态)。重点讲解了addTransition、assignProperty等核心方法的使用,并特别说明了状态机异步停止机制的处理方案,提供了状态机重启的可靠实现方法。该方案可以灵活应用于各种需要状态管理的UI交互场景。原创 2025-06-14 18:24:49 · 231 阅读 · 0 评论 -
【Qt】在OrinNX上,使用命令安装qtmultimedia5-dev时报错
在OrinNX+Ubuntu20.04系统上安装qtmultimedia5-dev时,遇到依赖问题,提示libpulse-dev未安装。进一步分析发现,libpulse-dev依赖的libpulse0和libpulse-mainloop-glib0版本过高,导致安装失败。解决方法是通过命令sudo apt install libpulse0=1:13.99.1-1ubuntu3.8 libpulse-mainloop-glib0=1:13.99.1-1ubuntu3.8安装指定版本的依赖包。此外,可以通过a原创 2025-05-20 22:05:38 · 150 阅读 · 0 评论 -
【ROS2】编译Qt实现的库,然后链接该库时,报错:/usr/bin/ld: XXX undefined reference to `vtable for
在ROS2工程中编译使用Qt实现的库时,可能会遇到未定义信号函数的链接错误,原因是CMakeLists.txt未正确配置元编译(moc)处理。解决方法包括启用Qt相关编译器(如CMAKE_AUTOMOC),确保头文件和源文件被正确添加到编译列表中,并使用qt5_wrap_cpp手动指定需要moc处理的头文件。此外,检查生成的moc文件是否存在,并确保在编译命令中启用详细输出以验证moc是否执行。其他可能的原因包括缺少必要的Qt宏(如Q_OBJECT)或CMake缓存未清空,建议删除build和install原创 2025-05-15 22:31:58 · 349 阅读 · 0 评论 -
【ROS】将Qt的Pro工程转换到ROS2的colcon
本文介绍了如何将Qt的Pro工程文件转换为ROS2的colcon构建工程。首先,Qt5默认使用qmake管理项目,而ROS2的colcon基于CMake,因此需要先将Qt的Pro工程文件转换为CMakeLists.txt文件。转换过程中需注意处理头文件和源文件列表中的注释问题。接着,将生成的CMakeLists.txt文件修改为ROS2风格,包括创建ROS2包、合并Qt的CMake配置、添加Qt库依赖、设置C++标准、处理预编译头文件等。最后,通过调整编译参数和安装路径,确保程序能够在ROS2环境中正常运行原创 2025-05-14 23:45:17 · 345 阅读 · 0 评论 -
【Qt】pro工程文件转CMakeLists文件
Qt工程文件pro转CMakefile详解原创 2025-05-13 21:09:43 · 451 阅读 · 0 评论 -
【音频】Qt6实现MP3播放器
解码MP3有很多种方法,比如:FFmpeg、GStreamer、Qt、libmpg123 库等,下面介绍使用,只使用Qt的接口方法解码、播放MP3。开发配置:1)操作系统:Windows112)Qt版本:Qt6.5.13)编译器:MinGW_64。原创 2025-05-01 20:48:47 · 576 阅读 · 0 评论 -
【Qt】QxOrm:下载、安装、使用
github地址:https://github.com/QxOrm/QxOrm稳定版本下载:https://github.com/QxOrm/QxOrm/releases/tag/1.5.0。原创 2025-04-11 22:31:33 · 392 阅读 · 0 评论 -
【Qt】Ubuntu22.04使用命令安装Qt5和Qt6
注意:Ubuntu22.04已经没有 qt5-default ,因此不能一键安装啦1)安装核心组件2)安装QtCreator3)安装工具包、Qt Quick 开发的核心库(qtdeclarative5-dev)4)安装媒体组件5)数据库组件6)安装各种示例7)安装Qt WebEngine(基于 Chromium 的浏览器引擎)8)其它模块、插件根据需要安装。原创 2025-03-26 22:03:37 · 748 阅读 · 0 评论 -
【Qt】supervisorctl进程管理:启动、重启、环境设置
etc/systemd/system 目录下的 service 文件,是指向 /lib/systemd/system 目录下 service 的软连接,最终指向 /usr/lib/systemd/system 下 service 文件。其中 /lib 是 /usr/lib 的软连接,因此 /lib/systemd/system 和 /usr/lib/systemd/system 是同一个目录。supervisorctl的配置文件可以管理日志文件,比如:日志文件路径、大小、循环记录的文件数量;原创 2025-03-12 21:12:16 · 257 阅读 · 0 评论 -
【ROS2】RViz2源码分析(八):Display中订阅ROS2消息(使用Qt信号和槽传递ROS2消息)
本篇博客,将会一起学习 RViz2 中如何使用 ROS2,以 Display 中订阅 ROS2 消息为例。原创 2025-02-20 08:52:16 · 328 阅读 · 0 评论 -
【Qt】Q_OBJECT无法用在模版类中的原因和解决方法
Q_OBJECT无法用在模版类中的原因和解决方法原创 2025-02-18 17:08:41 · 293 阅读 · 0 评论 -
【ROS2】RViz2源码分析(七):DisplaysPanel 中的树状模型/视图
既然是树状结构,应该有一个根节点,类型为 DisplayGroup ,它继承自Display ,它的子节点也是各种各样的 Display。Property 属性的 aboutToChange() 和 changed() 信号,会在属性的数值发生变化事触发,接收 changed() 信号的槽函数随后应向属性本身询问新的数据。继承自 Property 的子类,包含的数据类型可以是各种各样的,因此使用 QVariant 类型来存储,可以调用 Property::setValue() 方法来存储数据。原创 2025-02-15 22:42:13 · 212 阅读 · 0 评论 -
【Qt】模型/视图(Model/View)框架详解(二):子类化模型
对于列表,建议子类化:QAbstractListModel对于表格,建议子类化:QAbstractTableModel对于树状,必须子类化:QAbstractItemModel。原创 2025-02-15 18:30:00 · 234 阅读 · 0 评论 -
【Qt】模型/视图(Model/View)框架详解(一):基本概念
Qt的模型/视图(Model/View)框架 源自 模型-视图-控制器 (MVC);原创 2025-02-12 21:31:00 · 297 阅读 · 0 评论 -
【ROS2】RViz2自定义面板插件(rviz_common::Panel)的详细步骤
RViz2 使用 QT 作为 UI 框架,虽然 QT 也有插件机制,但是 RViz2 并没有使用QT的插件机制,而是通过 pluginlib 加载功能模块来实现。原创 2025-02-08 22:59:18 · 439 阅读 · 0 评论 -
【ROS2】RViz2源码分析(五):界面类 VisualizationFrame 详解
VisualizationFrame 继承自 QMainWindow 和 WindowManagerInterface;窗口顶部是常规布局:菜单栏 和 工具栏窗口中心是 RenderPanel,用来渲染3D画面周围是dock区域,包括:DisplaysPanel、ViewsPanel、TimePanel、SelectionPanel 和 ToolPropertiesPanelWindowManagerInterface 是管理各种停靠面板的接口抽象类。原创 2025-01-25 18:00:00 · 188 阅读 · 0 评论 -
【ROS2】RViz2源码分析(四):初始化、启动
详细介绍RViz主函数中初始化 VisualizerApp::init() 函数的内容原创 2025-01-23 19:00:00 · 208 阅读 · 0 评论 -
【ROS2】Qt事件循环和ROS2订阅机制一起使用有什么注意事项?
Qt的事件循环和ROS订阅回调函数都可能在阻塞函数中运行,例如:Qt的和 ROS的两个阻塞函数不能在同一个线程中使用,如果使用不当,会造成Qt不处理事件或者ROS2不处理订阅的回调函数。原创 2025-01-08 20:04:20 · 497 阅读 · 0 评论 -
【Qt】Qt开发安卓程序,安装时报错:安装包中没有签名证书
在QtCreator中编译出安卓程序安装包,安装时未成功,提示:安装包中没有签名证书。原创 2024-12-05 18:30:00 · 521 阅读 · 0 评论 -
【Qt】Qt在窗口中加载Web界面的方法汇总
1)Qt版本:Qt5.4以上;2)平台要求(https://doc.qt.io/archives/qt-5.9/qtwebengine-platform-notes.html):例如:Windows下只能使用 MSVC 编译器,,会报错(: error: Unknown module(s) in QT: webenginewidgets)并且不能用在Qt编译的安卓程序中3)在pro中添加支持包:对于QWidget(C++)程序,使用:QT += webenginewidgets。原创 2024-11-14 20:12:21 · 1097 阅读 · 0 评论 -
【Qt】QtCreator安装安卓环境
java 19下载,版本 19.0.1, windows各版本:https://download.csdn.net/download/hanbins137/86934053。java 17下载,版本 17.0.5, windows各版本:https://download.csdn.net/download/hanbins137/86934053。java各个版本大下载链接:https://www.oracle.com/java/technologies/downloads/archive/原创 2024-11-13 20:41:25 · 631 阅读 · 0 评论 -
【Qt】QProcess用法小结
QProcess用来启动和管理外部进程,比如:启动shell命令、shell脚本等。原创 2024-10-30 19:16:46 · 598 阅读 · 0 评论 -
【Qt】UDP多网卡广播
当只有一个网卡时,广播正常;但是当有多个网卡时,广播失败。原创 2024-10-25 21:15:50 · 438 阅读 · 0 评论 -
【ROS2】Qt和ROS混合编程:多继承QObject和rclcpp::Node
如果想在一个类中,即使用Qt的信号和槽(程序内部通信),同时也使用ROS2的发布、订阅消息机制(程序之间通信),如何操作?可以尝试多重继承:QObject 和 rclcpp::Node。原创 2024-10-23 20:44:45 · 486 阅读 · 0 评论 -
【ROS2】package.xml 和 CMakeLists.txt 详解,并添加Qt依赖库
1) package.xml的作用ROS2中 使用 colcon 来构建工程。colcon 会读取 package.xml 文件中的信息,以确定唯一的包名、使用的构建工具、依赖包等。每个包的具体编译方法,使用 CMakeLists.txt 来描述。详见CMake的使用方法。原创 2024-10-22 20:41:23 · 635 阅读 · 0 评论 -
【Qt】QBitArray 和 std::bitset
Qt和STL中关于位操作的详解原创 2024-07-27 10:48:16 · 287 阅读 · 0 评论 -
【Qt】Qt容器用法举例
Qt容器用法举例:QList、QVector、QMap、QHash原创 2024-07-26 17:56:41 · 185 阅读 · 0 评论 -
【Qt】Qt迭代器和STL迭代器的区别
Qt迭代器和STL迭代器的区别原创 2024-07-26 17:16:31 · 192 阅读 · 0 评论 -
【Qt】Qt容器和STL容器的区别
Qt容器和STL容器略有不同,作为一个Qter,应该知道它们之间的异同。原创 2024-07-25 21:59:57 · 510 阅读 · 0 评论 -
【Qt】Qt出现“xcb”相关错误,解决方法汇总
解决Qt启动时,报 “xcb” 相关错误的,解决方法汇总,包括Ubuntu系统和嵌入式Linux系统原创 2024-06-21 19:00:00 · 2746 阅读 · 0 评论 -
【Qt】Qt开源项目
Qt进阶:列几个优秀的Qt开源项目来学习原创 2024-05-15 22:20:22 · 839 阅读 · 0 评论 -
【Qt】获取、设置环境变量
Qt 获取、设置环境变量:qgetenv、qputenv原创 2024-05-04 22:33:38 · 1898 阅读 · 0 评论 -
【Qt】修改QSerialPort支持的波特率
QSerialPort是Qt操作串口的子模块,默认的支持的波特率最大为115200.可以通过修改QSerialPort子模块源码,添加需要的波特率。原创 2024-04-22 19:15:00 · 1301 阅读 · 0 评论 -
【Qt】UDP使用注意事项
使用Qt实现UDP时实现单播、广播时遇到一些意想不到的事情,比如:接受的IP前缀是“::ffff:”;广播时出现回环数据等,特此记录下。原创 2024-04-22 19:30:00 · 449 阅读 · 0 评论 -
【Qt】Qt安装包、源码、子模块(submodules)下载
以Qt5.7.1为例,注意子模块都是源码,需要独立编译。原创 2024-04-18 20:30:00 · 2190 阅读 · 0 评论 -
【Qt】Qt中代替C语言scanf和gets函数的方法
Qt控制台程序可以使用QTextStream从标准输入stdin获取输入数据,代替C语言的scanf和gets原创 2024-04-18 09:54:17 · 503 阅读 · 0 评论