Qt
文章平均质量分 72
记录平时编码问题、Qt Creator使用经验、Qt开发学习过程等
油炸自行车
怕什么真理无穷,进一寸有一寸的欢喜。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【bug】Qt 6 Q_NAMESPACE 跨 DLL 链接错误:LNK2019 无法解析 staticMetaObject
本文分析了Qt 6中Q_NAMESPACE导致的跨DLL链接错误(LNK2019)。当插件间需要共享包含Q_NAMESPACE的命名空间时,由于生成的staticMetaObject缺少导出限定符,导致符号无法解析。解决方案是使用Qt 6新增的Q_NAMESPACE_EXPORT(EXPORT_MACRO)替代原宏,配合导出宏定义(DEFINES)和链接库(LIBS)配置。关键点包括:1)正确设置DLL导出/导入宏;2)确保引用方链接到目标库;3)避免重复使用Q_NAMESPACE。该问题常见于对等插件间的原创 2026-06-11 10:06:16 · 403 阅读 · 0 评论 -
【Qt】 设置布局拉伸因子(Stretch)
本文介绍了Qt布局中拉伸因子的概念及设置方法。拉伸因子用于控制布局内控件的空间分配比例,数值越大分配空间越多,适用于水平、垂直和网格布局。文章详细讲解了4种设置方式:UI设计器可视化设置、代码按索引设置、指定控件设置以及添加控件时直接设置。特别说明了网格布局需要单独设置行列拉伸,并指出了常见错误如索引不连续、比例理解错误等注意事项。最后提到拉伸因子需配合控件的尺寸策略才能正确生效。原创 2026-05-28 17:34:38 · 237 阅读 · 0 评论 -
【Qt bug排查】Qt项目debug模式下,关闭可视化界面后,后台程序不退出,依然在打印log
文章摘要:日志显示析构完成但程序未退出,原因是Cdu服务器业务类的析构函数中,使用QMetaObject::invokeMethod以阻塞方式调用了所在子线程的closeUdp()方法,导致死锁。单步调试发现线程卡死,主程序无法退出。总结指出析构函数中禁止使用阻塞连接方式调用当前对象或其子线程的方法,也禁止访问当前对象的成员变量,否则会引发死锁。核心结论强调析构函数中进行此类操作是高风险行为。原创 2026-05-04 15:05:50 · 48 阅读 · 0 评论 -
【Qt】运行 `windeployqt.exe` 打包Qt发布包,遇到警告的解决方法 (Warning: Cannot find any.....)
这篇文章介绍了解决Qt打包发布时找不到dxcompiler.dll和dxil.dll文件的问题。作者提供了详细的操作步骤:首先通过VS开发者命令工具定位到程序目录,然后使用cd命令切换路径(附无效情况的解决方法),最后执行windeployqt命令完成打包。文章还提示了Qt项目中常见的缺失DLL组件问题,并配有操作截图辅助说明。整体内容简明实用,针对Qt开发者在打包过程中遇到的特定DLL缺失问题给出了清晰的解决方案。原创 2026-04-15 17:40:38 · 221 阅读 · 0 评论 -
【Qt】Qt Creator Debug模式提示“缺少 Windows CDB 调试器配套的扩展组件“”
本文介绍了Qt调试功能缺失问题的解决方法。通过Qt Maintenance Tool添加CDB调试器支持组件:1)打开维护工具;2)选择"添加或移除组件";3)在Qt Creator下勾选"CDB Debugger Support";4)完成安装后重启Qt Creator即可恢复调试功能。注意不同版本中组件位置可能有所差异。该方法能有效解决调试功能不可用的问题。原创 2025-12-07 19:35:40 · 358 阅读 · 0 评论 -
【Qt】Qt设计师控件名缩写、命名规则
本文整理了Qt常用控件的标准命名规范,包含6大类59种控件:1)布局控件组(如vLay、hLay);2)间隔控件组(hsp、vsp);3)按钮控件组(btn、tbtn等);4)视图/部件组(lv、tv、lw等);5)容器控件组(gbx、tabWgt等);6)输入/显示控件组(le、pte、lbl等)。每种控件提供全称、中文名称、推荐简写及示例(如gbxSetting),便于开发者规范命名,提升代码可读性。原创 2025-12-05 10:31:53 · 529 阅读 · 0 评论 -
【Qt】VS Code配置Qt UI插件,vscode打开Qt Designer ,vscode打开Qt*.ui文件
本文介绍了如何在VS Code中安装和使用Qt UI插件。首先需要安装Qt Core依赖,然后通过设置配置Qt Designer路径(如C:/Qt/6.9.1/msvc2022_64/bin/designer.exe)。安装完成后,可直接在VS Code中用Qt Designer打开UI文件进行编辑。该方法同样适用于Trae等新兴AI IDE。整个配置过程简单快捷,为开发者提供了便捷的Qt界面设计工具集成方案。原创 2025-10-23 14:44:08 · 2186 阅读 · 0 评论 -
Qt知识点散记(持续更新……)
总结的一些Qt散随的小知识、遇到的问题,好记性不如烂笔头。原创 2025-10-22 10:55:41 · 388 阅读 · 0 评论 -
【Qt】布局管理器类常用方法介绍
在Qt(C++)开发中,布局管理器是实现的核心工具。常用的布局类主要围绕QBoxLayout家族(含)、和,它们覆盖了绝大多数界面布局场景。以下是各布局类的核心作用、常用API及实战用法。原创 2025-09-28 08:54:30 · 1039 阅读 · 0 评论 -
【Qt】滚动区域类QScrollArea中子部件被压缩,且不显示滚动条的问题
定义部件在布局中的大小行为(是否拉伸、固定等),是布局管理的核心配置。用于在大小相关属性变化后,强制布局管理器重新计算布局,确保界面正确显示。两者结合使用,可以精确控制部件在各种布局中的大小表现。原创 2025-09-25 17:49:31 · 953 阅读 · 0 评论 -
【Qt】QButtonGroup、QToolButton、QStackedWidget的常用用法
是一个逻辑管理类(非可视化组件),用于管理一组派生类(如等)。实现按钮间的互斥选择(类似单选按钮组);为按钮分配唯一ID,方便通过ID识别按钮;统一处理一组按钮的点击事件。是可视化按钮组件,继承自,专为工具栏(QToolBar)设计。与普通相比,它更适合显示图标(而非文字),支持快捷操作和弹出菜单,外观更紧凑。是容器类组件,用于管理多个子部件(QWidget),但同一时间仅显示一个子部件(类似“卡片切换”)。它本身不提供切换控件,需配合外部组件(如按钮、)触发切换。原创 2025-09-23 22:22:44 · 798 阅读 · 0 评论 -
【Qt】编写Qt自定义Ui控件步骤
新建项目“其它项目 --> Qt4 设计师自定义控件”自定义项目“名称、创建路径”,下一步;选择合适的编译套件,下一步;前文提到过,要选择与 Qt Creator 相对应的编译环境,否则不能在 Qt Creator 中拖放使用。指定自定义控件属性,按下图操作:步骤 2,红框中的创建代码框架复选框,记得勾选;本示例是创建一个自定义按钮,我打算在原上修改,所以控件的基类我填的是;“链接库” 用于复用已有编译好的控件库,没有,这里不选择。插件名称、资源文件名称修改,下一步;原创 2025-09-13 15:01:11 · 1082 阅读 · 0 评论 -
【Qt】Window环境下搭建Qt6、MSVC2022开发环境(无需提前安装Visual Studio)
本文介绍 Windows 环境下无需安装 Visual Studio,搭建 Qt6 与 MSVC2022 开发环境的方法,以节省磁盘空间。核心步骤包括:用中科大镜像提速 Qt6 在线安装,需勾选 Qt Creator 17.0.1、MSVC 2022 x64 等组件;配置环境变量,添加 mingw_64、msvc2022_64 及 Qt Creator 的二进制目录;安装 MSVC 2022 编译器与 Windows 10 SDK 并记录版本;配置 Qt Creator 构建套件,可选设置 vcvarsal原创 2025-09-13 14:35:03 · 2737 阅读 · 0 评论 -
【Qt】子项目工程创建步骤
本文介绍了Qt项目中创建主项目和子项目的步骤:1)选择子项目目录创建项目;2)自动弹出对话框后,选择"Qt Widgets Application"创建主项目;3)子项目分为三种类型。重点说明了如何将"Shared Library"子项目引入工程,并简要提及"Qt Plugin"用于插件式开发。通过图文结合的方式,展示了项目创建过程中的关键界面和操作步骤。原创 2025-09-03 13:18:44 · 211 阅读 · 0 评论 -
【Qt】国际化(中英文翻译)——Qt语言家(Linguist)和QTranslator类的简单使用(内含完整源码)
本文介绍了使用Qt Linguist和QTranslator实现中英文切换的方法,包含.pro文件配置翻译资源、通过Linguist工具编辑TS文件生成QM文件、代码中动态加载翻译文件并监听语言变化事件等核心步骤,提供了界面控件绑定与语言切换的具体示例。原创 2025-09-03 11:17:54 · 1720 阅读 · 0 评论 -
【Qt】bug排查笔记——QMetaObject::invokeMethod: No such method
摘要: 本文记录了在Qt插件开发中遇到的QMetaObject::invokeMethod: No such method错误排查过程。问题源于事件总线订阅时错误的槽函数签名传递方式:使用SLOT(subAppInfo(QVariant))会导致元对象系统将完整签名误认为方法名,而实际需匹配的是纯方法名"subAppInfo"。通过修正为subscribe(topic, receiver, "subAppInfo")解决问题。关键点包括:Q_ARG需省略const/&原创 2025-09-02 18:49:27 · 1166 阅读 · 0 评论 -
【Qt】QToolBar、QToolButton的常用用法
摘要 Qt 中的 QToolBar 和 QToolButton 是创建工具栏及其按钮的核心组件。QToolBar 支持添加动作、控件、分隔符,并可通过 setMovable、setFloatable 控制停靠行为,支持图标大小、方向等外观定制。QToolButton 专为工具栏设计,支持图标、文本、下拉菜单及可切换状态,其样式可通过 setToolButtonStyle 调整。两种添加按钮方式(addAction 和 addWidget)在样式继承上有区别,后者需手动管理样式。结合使用可实现复杂工具栏功能,原创 2025-09-02 18:14:05 · 617 阅读 · 0 评论 -
【Qt】Qt Creator项目文件(.pro 文件)构建指令学习
Qt 项目文件(.pro文件)构建指令学习笔记原创 2024-12-05 15:42:45 · 837 阅读 · 0 评论 -
【Qt】记录GraphicsView图形框架学习过程中遇到的问题,持续更新~
记录GraphicsView图形框架学习过程中遇到的问题原创 2024-12-02 16:33:48 · 375 阅读 · 0 评论 -
【Qt】使用正则表达式,从输入字符串中提取所有或第一个符合特定始、末符号的字符串。
使用Qt中正则表达式头文件,封装一个轮子。其功能为:从输入字符串中提取所有符合特定始、末符号的字符串。原创 2024-10-24 10:53:53 · 899 阅读 · 0 评论 -
【Qt】Qt插件式开发中非常重要的3个宏——Q_DECLARE_INTERFACE、Q_PLUGIN_METADATA和Q_INTERFACES
在Qt插件式开发中,和这3个宏扮演者非常重要的角色,只要使用了Qt官方的插件式开发框架,就必定会使用到这三个宏。笔者对这3个宏总是混淆、记不清楚,今天就总结下来,方便日后查看。用于生命一个接口类型,以便插件能够实现这个接口。这个宏会生成用于接口类型可识别和查询的代码。这里进一步解释3个关键词,便于大家理解(或者以后的我~哈哈哈哈哈,忘的太快)接口类型:即下文示例中的类;识别:通过IID,即下文中的,在插件系统中唯一标识一个接口类型;查询:通过IID在插件系统中查找和加载一个实现了特定接口的插件。原创 2024-09-02 08:00:00 · 1858 阅读 · 0 评论 -
【Qt】QPluginLoader 类学习
QPluginLoader类在运行时加载插件。提供对Qt插件的访问。Qt插件存储在共享库(如 DLL 文件)中,相比于QLibrary访问的共享库,会检查插件是否与应用程序使用的Qt版本一致;提供对根组件对象 (instance())的直接访问,而无需动手解析C函数。对象的实例操作单个共享库文件,这个共享库文件被称为插件。它以独立于平台的方式提供对插件中功能的访问。要指定要加载的插件,请在构造函数中传递文件名,或者使用方法进行设置。使用类一旦加载成功,插件会保留在内存中,直到所有实例都被卸载原创 2024-08-13 10:20:57 · 1594 阅读 · 0 评论 -
【Qt】翻译Qt官方帮助手册中 T qobject_cast(QObject *object) 的描述
翻译qt官方手册中的 T qobject_cast(QObject *object)翻译 2024-08-13 10:11:06 · 219 阅读 · 0 评论 -
【Qt】动态加载DLL之QLibrary类学习(内含完整Demo源码)
QLibrary类用于在运行时加载共享库。一个QLibrary对象实例操作一个单独的共享对象文件(也称为“库”或“DLL”)。QLibrary提供了一种平台独立的方式来访问库中的功能。你可以在构造函数中传递文件名,也可以通过显式设置文件名。在加载库时,如果指定的不是绝对路径,QLibrary会在系统默认的库路径中进行搜索(例如,Unix系统上的反之如果在构造时指定了库的绝对路径,则会优先尝试该路径。原创 2024-08-07 18:00:45 · 2059 阅读 · 0 评论 -
【Qt】Qt Creator 编码时遇到的问题汇总
汇总学习Qt时遇到的问题及解决办法原创 2024-07-28 23:10:41 · 776 阅读 · 0 评论 -
【Qt】Qt Creator报错:error: ‘toolBox‘ is a private member of ‘Ui_xxxxx‘
子类继承Qt Designer生成的ui界面类时,提示错误:error: 'toolBox' **is a private member of** 'Ui_xxxxx'原创 2024-05-27 23:11:09 · 378 阅读 · 0 评论
分享