Qt的图形编辑通常会涉及以下三个类:QGraphicsView类、QGraphicsScene类及QGraphicsItem类。
QGraphicsView 是构建复杂图形用户界面的强大工具,尤其适用于那些需要动态更新、可交互的2D图形化应用程序,如图表绘制、流程图编辑器、游戏地图显示等等。通过结合使用 QGraphicsScene 和 QGraphicsItem,开发者可以创建出高度定制化、性能优良的图形用户界面组件。
Qt场景视图的基本关系:
- 场景:提供绘图场景,场景是不可见的,是管理图形项的容器,可以向场景添加图形项,获取场景中某个图形项等。
- 视图:用于显示场景中的内容。当视图比场景大时,显示场景的全部内容。当视图比场景小时,视图只能显示场景的一部分内容,但是会自动提供卷滚条在整个场景内移动。
- 图元:一些基本的图像元件。
下面是一个简单的 QGraphicsView 使用示例,展示如何创建一个包含一个矩形图形项的基本场景,并将其显示在一个 QGraphicsView 控件中:
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建一个图形场景
QGraphicsScene* scene = new QGraphicsScene();
// 在场景中添加一个矩形图形项
QGraphicsRectItem* rectItem = scene->addRect(50, 50, 100, 100);
rectItem->setBrush