qt-C++笔记之创建和初始化 QGraphicsScene
和 QGraphicsView
并关联视图和场景的方法
code review!
参考笔记
1.qt-C++笔记之创建和初始化 QGraphicsScene
和 QGraphicsView
并关联视图和场景的方法
2.qt-C++笔记之QGraphicsScene和 QGraphicsView中setScene、通过scene得到view、通过view得scene
文章目录
- qt-C++笔记之创建和初始化 `QGraphicsScene` 和 `QGraphicsView` 并关联视图和场景的方法
- 1. 栈分配 `QGraphicsScene` 和 `QGraphicsView`
- 2. 堆分配 `QGraphicsScene` 和 `QGraphicsView`
- 3. 堆分配 `QGraphicsScene`,栈分配 `QGraphicsView`
- 4. 堆分配并利用父子关系管理
- 5. 使用 Qt Designer 通过 UI 文件创建(推荐方式之一)
- 总结比较
- 推荐使用方式
在使用 Qt 开发图形界面应用程序时,
QGraphicsScene
和
QGraphicsView
是处理和显示图形项的核心类。正确地创建和初始化这两个类对于应用程序的性能和内存管理至关重要。本节将详细介绍创建和初始化
QGraphicsScene
和
QGraphicsView
的常见方式,分析它们之间的关系,并讨论不同内存分配方式的优缺点及适用场景。
1. 栈分配 QGraphicsScene
和 QGraphicsView
QGraphicsScene scene;
QGraphicsView view(&scene);
特点
- 栈上分配:
scene
和view
都是在栈上分配的对象。 - 作用域管理:它们的生命周期由所在的作用域控制,离开作用域时会自动销毁。
- 关联方式:
view
在构造函数中接受scene
的地址,直接关联二者。
优点
- 自动内存管理:不需要手动释放内存,避免了内存泄漏的风险。
- 简单易用:代码简洁明了,适合快速开发。
缺点
- 栈内存有限:栈内存空间较小,如果场景中包含大量图形项,可能导致栈溢出。
- 生命周期受限:无法在作用域之外使用
scene
或view
,限制了它们的可用范围。
适用场景
- 短生命周期的应用:如小型工具或临时演示程序。
- 简单场景:不需要大量图形项或复杂交互的情况。