- 博客(12)
- 收藏
- 关注
原创 Qt中信号集中转发的一种方法
在 Qt 开发中,有时我们需要将一个对象的多个信号连接到一个槽函数集中处理,或者动态地连接信号与槽。要把上面的3个信号连接到同一个槽函数集中处理,但是在Qt中使用QObject::connect连接时会检查信号和槽的参数是否匹配,如果不匹配会导致编译错误。这种情况该怎么处理呢,有小伙伴说把3个信号合成一个,参数使用QVariant,这种方式虽然可以,但是如果TestObject不是自己编写的,而是其他库或者是Qt库中的类右该怎么办呢?下面提供一种可行的方法。
2025-02-11 18:08:29
610
原创 Qt多线程-QFuture 和 QFutureWatcher 的使用
在软件开发中,经常会遇到需要异步执行一系列耗时步骤的场景。当前一个操作失败时,我们希望停止后续操作。
2024-01-03 22:41:27
1073
1
原创 Qt事件循环之系统事件的接入与分发
当我们使用Qt程序接收鼠标、键盘事件的时候,大家有没有想过这些事件是怎么来的?当然是从操作系统来的,那Qt又是怎么从操作系统接收到的事件的?
2023-08-15 21:00:00
728
2
原创 Qt中QPA插件,Qt跨平台的基础
Qt是一个跨平台的C++框架,各位小伙伴在使用Qt的时候有没有想过Qt是怎么实现跨平台的呢?Qt为了实现跨平台做了哪些工作。现在我们就来探讨一下Qt跨平台的基础,QPA插件
2023-05-04 13:31:52
5383
4
原创 Qt-D指针和Q指针及使用
阅读Qt的源代码的时候,我们经常看Q_D、Q_Q、Q_DECLARE_PRIVATE、Q_DECLARE_PUBLIC这几个宏,这几个宏是干什么用的呢?
2023-05-04 13:28:53
1910
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
328
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
351
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人