- 博客(15)
- 收藏
- 关注
原创 深入探索 Qt 窗口与系统窗口的关系
Qt框架通过QWindow/QWidget提供窗口抽象,与操作系统原生窗口建立映射关系。顶级窗口(如QMainWindow)必然对应系统窗口句柄(如Windows的HWND),而子控件默认不创建独立系统窗口以减少资源消耗。创建流程延迟执行,直到调用show()时才会递归创建整个窗口树的原生窗口。Qt通过QPA插件与不同平台交互,实现跨平台窗口管理,同时支持混合嵌入原生窗口到Qt应用中。
2025-11-19 15:37:19
793
翻译 基于字符串与基于函数对象的连接方式差异
Qt信号槽连接方式对比:本文对比了Qt中基于字符串和基于函数对象两种信号槽连接方式的核心差异。基于字符串连接在运行时检查类型,支持连接参数不同的槽函数(使用默认参数)及连接C++到QML;基于函数对象连接在编译时检查类型,支持隐式类型转换、Lambda表达式连接,并能识别类型别名。两者在重载函数处理和默认参数使用上亦有显著区别,开发者需根据实际场景选择合适的连接方式。
2025-11-13 20:30:00
16
原创 深入探索Qt信号槽机制
深入解析了Qt框架中信号与槽机制的核心原理。通过分析MOC(元对象编译器)的工作流程,揭示了信号槽从声明到连接的完整过程:MOC预处理生成元信息代码,建立运行时类型系统;连接建立时进行严格的类型安全检查;信号发射时通过元对象系统触发槽函数调用。这套机制巧妙地结合了C++静态类型系统和动态元对象系统,不仅实现了对象间的松耦合通信,还完美支持了跨线程调用,体现了Qt框架的精妙设计。
2025-11-13 15:22:47
772
原创 Qt中信号集中转发的一种方法
在 Qt 开发中,有时我们需要将一个对象的多个信号连接到一个槽函数集中处理,或者动态地连接信号与槽。要把上面的3个信号连接到同一个槽函数集中处理,但是在Qt中使用QObject::connect连接时会检查信号和槽的参数是否匹配,如果不匹配会导致编译错误。这种情况该怎么处理呢,有小伙伴说把3个信号合成一个,参数使用QVariant,这种方式虽然可以,但是如果TestObject不是自己编写的,而是其他库或者是Qt库中的类右该怎么办呢?下面提供一种可行的方法。
2025-02-11 18:08:29
748
原创 Qt多线程-QFuture 和 QFutureWatcher 的使用
在软件开发中,经常会遇到需要异步执行一系列耗时步骤的场景。当前一个操作失败时,我们希望停止后续操作。
2024-01-03 22:41:27
1277
1
原创 Qt事件循环之系统事件的接入与分发
当我们使用Qt程序接收鼠标、键盘事件的时候,大家有没有想过这些事件是怎么来的?当然是从操作系统来的,那Qt又是怎么从操作系统接收到的事件的?
2023-08-15 21:00:00
795
2
原创 Qt中QPA插件,Qt跨平台的基础
Qt是一个跨平台的C++框架,各位小伙伴在使用Qt的时候有没有想过Qt是怎么实现跨平台的呢?Qt为了实现跨平台做了哪些工作。现在我们就来探讨一下Qt跨平台的基础,QPA插件
2023-05-04 13:31:52
5911
4
原创 Qt-D指针和Q指针及使用
阅读Qt的源代码的时候,我们经常看Q_D、Q_Q、Q_DECLARE_PRIVATE、Q_DECLARE_PUBLIC这几个宏,这几个宏是干什么用的呢?
2023-05-04 13:28:53
1998
2
原创 Qt-QPointer的使用
在使用Qt的时候,你是否遇到过这样的场景,从外部传来一个QObject的指针,当使用这个指针的时候,害怕它已经被释放了?如果我们在一个对象A中引用了另一个对象B,当对象B被析构的时候,A对象其实是不知道B已经被析构。当第二次调用showWidget的时候,w已经被释放了,所以会打印出"The widget has been destroyed"。如果m_widget在其他地方被释放掉了,再调用showWidget就是导致崩溃,因为m_widget == nullptr肯定是false。
2023-05-04 13:17:01
420
2
原创 QObject对象树 ObjectTree
首先需要在o的原来的父对象的children列表中把o删除,如果不删除的话,这样就有2个父对象都保存了o的指针,这样在析构的时候就会出现o被delete 2次的情况。值得注意的是,如果在构造时设置父对象为 nullptr,那么当前对象不会有父对象存在,Qt 也不会自动释放该对象,除非超出作用域导致析构函数被调用,或者用户在恰当时机使用 delete 操作符或者使用 QObject::deleteLater 方法。Qt还是基于C++的框架,肯定还是需要delete的,答案就是Qt的对象树模型。
2023-05-04 09:23:15
429
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅