- 博客(10)
- 收藏
- 关注
原创 Qt多线程-QFuture 和 QFutureWatcher 的使用
在软件开发中,经常会遇到需要异步执行一系列耗时步骤的场景。当前一个操作失败时,我们希望停止后续操作。
2024-01-03 22:41:27
862
1
原创 Qt事件循环之系统事件的接入与分发
当我们使用Qt程序接收鼠标、键盘事件的时候,大家有没有想过这些事件是怎么来的?当然是从操作系统来的,那Qt又是怎么从操作系统接收到的事件的?
2023-08-15 21:00:00
637
2
原创 Qt中QPA插件,Qt跨平台的基础
Qt是一个跨平台的C++框架,各位小伙伴在使用Qt的时候有没有想过Qt是怎么实现跨平台的呢?Qt为了实现跨平台做了哪些工作。现在我们就来探讨一下Qt跨平台的基础,QPA插件
2023-05-04 13:31:52
3997
4
原创 Qt-D指针和Q指针及使用
阅读Qt的源代码的时候,我们经常看Q_D、Q_Q、Q_DECLARE_PRIVATE、Q_DECLARE_PUBLIC这几个宏,这几个宏是干什么用的呢?
2023-05-04 13:28:53
1184
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
248
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
255
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人