
查漏补缺知识点
文章平均质量分 57
查漏补缺知识点
士 毅
记录日常工作[Qt/C++/QML/JavaScript/Python]等知识点应用。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++赋值运算符函数与拷贝构造函数
在这个例子中,`MyClass` 具有一个整型成员数据,当创建类的新实例时,拷贝构造函数被调用(比如`MyClass b = a;`),而当一个已经存在的实例被赋予另一个对象的值时,拷贝赋值运算符被调用(比如`c = a;注意,在`MyClass`类中,我们添加了输出语句来指明哪个函数被调用。当我们要将一个对象的值赋予另一个已经存在的对象时,我们就会使用赋值构造函数。其中,`old_obj`是一个源对象的引用,我们将从其中复制数据。在这里,`old_obj`是我们要从中获取值的源对象。原创 2024-03-30 13:35:36 · 704 阅读 · 0 评论 -
Qt中QMutex和QMutexLocker
当创建一个QMutexLocker实例时,它会自动锁定关联的QMutex。当QMutexLocker对象离开作用域时(比如函数返回时),其析构函数会自动释放QMutex。这主要用于保证在函数中发生异常时能够正确地解锁QMutex,避免死锁。QMutexLocker是一个辅助类,它简化了对QMutex的锁定和解锁过程。QMutex是Qt中的一个互斥锁,用于保护共享数据不被多个线程同时修改。一.QMutex和QMutexLocker知识介绍。原创 2024-03-31 21:48:50 · 2852 阅读 · 0 评论 -
Qt 导出类及导出类被调用
当编译库自身的时候,`MYLIBRARY_LIBRARY`应该被定义(通常在项目文件中),这样`MYLIBRARY_EXPORT`就会在类前面扩展为`Q_DECL_EXPORT`,它在Windows上展开为`__declspec(dllexport)`,这是告诉编译器将这个类导出到库中。并确保产生的`.dll`(Windows)或`.so`(Linux / macOS)文件对应用程序或其他库可用。这样,`MyClass`就会根据`MYLIBRARYSHARED_EXPORT`宏的定义被正确地导出或导入。原创 2024-04-04 13:36:59 · 1446 阅读 · 0 评论 -
Qt 线程QThread
请注意,线程 ID 是平台相关的,不同的操作系统或不同的线程库可能会生成不同的线程 ID。此外,线程 ID 并不总是连续的或可预测的,因此不应该依赖于特定的线程 ID 值。这种做法有助于保持线程逻辑的清晰分离,并允许你更灵活地管理线程和对象之间的交互。在更复杂的场景中,你可能会考虑使用信号和槽机制来进行线程间的通信。这确保了线程是在单独的线程控制流中运行的。,在这个槽函数中我们打印出当前线程的 ID。二.方式2:Qt中的线程模型将对象移动到线程中方式。Qt中的线程模型鼓励将对象移动到线程中,而不是继承。原创 2024-03-31 22:17:52 · 512 阅读 · 0 评论 -
QML使用C++层枚举变量
在QML中,枚举(Enumeration)变量通常用于定义一组命名常量。要使用枚举变量,首先在一个QML文件或Qt对象中定义枚举类型,然后在QML中使用这些枚举值。2. **在QML中使用枚举变量**:在定义了枚举后,可以在其他QML文件中通过导入该QML文件来使用枚举值。原创 2024-04-04 14:49:37 · 454 阅读 · 0 评论 -
Qt QWebSocket讲解
QWebSocket是 Qt 框架中用于处理 WebSocket 通信的类。WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。这使得客户端和服务器之间可以进行实时交互,而无需频繁地建立和关闭连接。原创 2024-03-31 22:58:05 · 1352 阅读 · 0 评论 -
C++中浅拷贝和深拷贝对象复制概念
在上面的例子中,浅拷贝构造函数只是简单地将指针 `data` 复制给新对象,导致两个对象共享相同的指针,容易出现潜在的问题。深拷贝是指在对象复制时,会复制对象指向的资源,而不是简单地复制指针。这样就可以避免多个对象共享同一资源带来的问题。根据运行结果可以看出,浅拷贝会导致两个对象共享同一资源,而深拷贝会将资源复制给新对象,避免了共享资源带来的问题。浅拷贝是指在对象复制时,只是复制对象的值,而不会复制对象指向的资源。,将原对象的数据复制给新对象,从而。,以避免潜在的问题。原创 2024-03-31 00:39:18 · 267 阅读 · 0 评论 -
QVariant类及数据的存与取
试想我们的 table单元格可以是string,也可以是int,也可以是一个颜色值,那么这么多类型怎么返回呢?于是,Qt提供了这个QVariant类型,你可以把这很多类型都存放进去,到需要使用的时候使用一系列的to函数取出来即可。比如你把int包装成一个QVariant,使用的时候要用 QVariant::toInt()重新取出来。这里需要注意的是,QVariant类型的放入和取出必须是相对应...原创 2019-06-19 13:12:16 · 9461 阅读 · 0 评论 -
C++基础之内存管理中的内存泄漏和野指针问题
如使用智能指针(如unique_ptr和shared_ptr)来自动管理内存,确保每次动态分配内存后都有相应的释放操作,以及在不再需要指针时将其设置为nullptr。b. 对这个问题的分析:我们需要使用new操作符来分配内存,并在不再需要时使用delete操作符来释放内存。为了避免野指针,我们可以使用智能指针来自动管理内存。a. 清晰的问题描述:假设我们要创建一个动态数组,用于存储用户输入的整数,并在使用完毕后释放内存。(2)指针和引用:掌握指针的概念,理解指针如何指向内存地址,以及引用与指针的不同之处。原创 2024-03-03 15:16:48 · 734 阅读 · 0 评论