1.控件位置
Display Widgets→GraphicsView
2.控件介绍
GraphicsView(绘图视图)是用于显示QGraphicsScene内容的控件。学习该控件就不得不了解GraphicsView框架,GraphicsView框架为2D绘图提供一个简单、容易使用、功能强大的解决方案。Graphics View框架由三个主要的类组成:QGraphicsItem、QGraphicsScene和QGraphicsView。其中QGraphicsItem定义图元;QGraphicsScene定义场景,包含所有需要绘制的图元,根据用户的操作改变图元的状态;QGraphicsView定义观察场景的视窗,可以充当绘图的区域,成为独立的窗体被弹出,或者嵌入其他UI组件中形成复合UI组件。
3.控件设置选项
在GraphicsView控件的properties选项中,一般常对以下选项进行设置。
name:该控件对应源代码中的名称;
font:设置显示框字体;
frameShape:边框样式;
frameShadow:边框阴影,Qt Creator提供的选择有plain、raised、sunken;
lineWidth:边框线宽。
4.常用成员函数
1) QGraphicsView::QGraphicsView ( QWidget *parent = 0 )
构造一个父对象为parent的GraphicsView。
2) QGraphicsView::QGraphicsView ( QGraphicsScene *scene, QWidget *parent = 0 )
构造一个父对象为parent的GraphicsView,填充场景scene到该GraphicsView。
3) void QGraphicsView::centerOn ( const QPointF & pos )
调整视窗的内容,确保点pos在视窗中居中。
4) void QGraphicsView::centerOn ( qreal x, qreal y )
这是一个重载函数,函数功能同函数3),相当于调用center(QPointF(x,y))。
5) void QGraphicsView::centerOn ( const QGraphicsItem *item )
这是一个重载函数,函数功能同函数3),调整视区的内容,使项目item为中心。
6) void QGraphicsView::ensureVisible ( const QRectF & rect, int xmargin = 50, int ymargin = 50 )
调整视窗的内容,使视窗rect中的内容是可见的。
7) void QGraphicsView::ensureVisible ( qreal x, qreal y, qreal w, qreal h, int xmargin = 50, int ymargin = 50 )
这是一个重载函数,函数功能同函数6),相当于调用ensureVisible(QRectF(x,y,w,h),xmargin,ymargin)。
8) void QGraphicsView::ensureVisible ( const QGraphicsItem *item, int xmargin = 50, int ymargin = 50 )
这是一个重载函数,函数功能同函数6),调整视窗的内容,使item的内容可见。
9) QGraphicsItem *QGraphicsView::itemAt ( const QPoint & pos ) const
返回pos处的item。
10) QGraphicsItem *QGraphicsView::itemAt ( int x, int y ) const
这是一个重载函数,函数功能同函数9),返回坐标(x,y)处的item。
11) QList<QGraphicsItem *> QGraphicsView::items () const
返回相关场景中所用的图元。
12) QList<QGraphicsItem *> QGraphicsView::items ( const QPoint & pos ) const
返回视图中位置pos处的项目列表。
13) QGraphicsScene *QGraphicsView::scene () const
返回当前可视化的场景;如果当前没有可视化的场景,则返回0。
14) void QGraphicsView::setScene ( QGraphicsScene *scene )
设置场景scene为当前可视化场景。
15) void QGraphicsView::updateScene ( const QList<QRectF> & rects ) [slot]