![](https://img-blog.csdnimg.cn/180837d7d00a485d86ca24fa2dfbe5f6.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
QT 数据结构
文章平均质量分 90
QT 相关开发
火山上的企鹅
所有的热爱都要不遗余力
展开
-
QT C++ 中常见知识点
激发信号的Qt对象无需知道是哪个对象的哪个槽需要接收它发出的信号,它只需在适当的时间发送适当的信号就可以了,而不需要知道也不关心它的信号有没有被接收到,更不需要知道是哪个对象的哪个槽收到了信号。④ 多线程的时候,信号需要排队等待。QVariant里面会new一个用户自定义类型的内存,并调用拷贝构造函数,QVariant自身的赋值会使用共享内存管理 所以用户可以传入一个临时变量地址,如果用户传入的是一个指针,这个指针需要用户自己析构,改变这个指针的值,并不会改变QVariant,因为是两个不同的空间了。原创 2024-02-07 14:18:09 · 1184 阅读 · 0 评论 -
Qt QJson 使用
QJson是一个用于 Qt 应用程序的 JSON 解析和生成库。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,具有良好的可读性和可扩展性,常用于 Web 应用程序中。QJson 将 JSON 数据解析为 QJsonDocument 对象,同时可以将 QJsonDocument 对象转换为 JSON 数据。♦ 常用的 QJson 类包括:表示一个 JSON 文档,包括了一个 QJsonObject 或 QJsonArray 对象。原创 2023-05-16 22:08:35 · 807 阅读 · 0 评论 -
QT 多线程之继承 QThread
任何继承于QThread的线程都是通过继承 QThread 的run函数来实现多线程的,因此,必须重写QThread的run函数,把复杂逻辑写在QThread的run函数中。然后在主线程中调用 start() 函数来启动子线程。子类化 QThread 的方法,就是重写了 QThread 中的 run() 函数,在 run() 函数中定义需要的工作。这样的结果是,我们自定义的子线程调用 start() 函数后,便开始执行 run() 函数。原创 2023-05-02 22:43:09 · 1990 阅读 · 0 评论 -
Qt QQueue 安全的多线程队列、阻塞队列
public ://唤醒等待队列中的一个线程(来自wait) } T take() {这个 BlockingQueue类使用QMutex和QWaitCondition来保证线程安全,并实现了put、take、isEmpty和size等方法。其中,put方法用于往队列中插入元素,take方法用于从队列中取出元素,isEmpty方法用于判断队列是否为空,size方法用于获取队列中元素的数量。原创 2023-05-07 22:03:03 · 7983 阅读 · 1 评论 -
Qt 智能指针介绍: QSharedPointer、QWeakPointer 、QScopedPointer 、QPointer(附实例)
在使用动态内存分配的情况下,需要确保对象的所有权正确地被管理和转移。使用智能指针可以帮助我们自动管理对象的生命周期和所有权,避免内存泄漏和悬挂指针的问题。♦ 什么时候需要用到智能指针?在使用QObject对象的情况下,需要确保对象的生命周期和父子关系正确地被管理。QObject对象的生命周期受到父子关系的影响,因此需要使用QPointer等智能指针来管理QObject对象的指针。多线程编程中,需要确保多个线程访问共享对象时不会发生竞态条件。原创 2023-05-06 11:11:42 · 3246 阅读 · 0 评论