Qt图形编辑类使用总结

时间:2024-07-12 10:27:36

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