QGraphicsScene:图形场景,主要用来添加各种图元,保存数据;
QGraphicsView:用来显示场景中的数据;
QGraphicsItem:各种图元的基类,在此基础上可以派生不同图元类型。
首先定义场景和View;
QGraphicsScene* _graphicsSence;
QGraphicsView* _graphicsView;
搭建一个简单的场景并且显示出来:
void GraphicsView::init() {
_graphicsSence = new QGraphicsScene(this);
_graphicsView = new QGraphicsView(this);
QPen pen;
pen.setColor(QColor(255, 0, 0));
pen.setWidth(2);
_graphicsSence->addRect(0.0, 0.0, 100.0, 100.0, pen);
_graphicsView->setScene(_graphicsSence);
ui.verticalLayout->addWidget(_graphicsView);
}
运行一下:
发现绘制的矩形并没有在视图窗口的左上角,在默认的情况先,图元是在居中显示的,设置一下是视图的对其方式就可以了:
_graphicsView->setAlignment(Qt::AlignLeft | Qt::AlignTop);
然后运行一下,图元已经移到左上角了:
aaa