一、从QDiagramItem中派生的图形类有以下几种:
1、QGraphicsEllipseItem是椭圆Item;
2、QGraphicsLineItem是线Item;
3、QGraphicsPathItem是路径item,是曲线、直线或者折线相连的一条线;
4、QGraphicsPixmapItem是图片Item,这个图片可以是常用的几种图片格式;
5、QGraphicsPolygonItem是多边形Item;
6、QGraphicsRectItem是矩形Item;
7、QGraphicsSimpleTextItem是文本Item;
8、QGraphicsTextItem是文本Item;
二、QDiagramItem虚函数
1、contextMenuEvent
说明:这个是响应菜单命令的函数。
2、dragEnterEvent
拖拽有关。就像把一个按钮从菜单栏拖动到视图区域中然后放下这个过程一样。是拖拽时候按下响应函数。
3、dragLeaveEvent
拖拽有关。放开时候的响应函数。
4、dragMoveEvent
拖拽有关。移动的时候的响应函数。
5、dropEvent
字面是扔掉放弃,类似把一个按钮拖到无关区域放下,不要了。
6、focusInEvent
聚焦到这里。聚焦不是鼠标按下。有可能是键盘enter、tab键作用。
7、focusOutEvent
聚焦消失。与上面对应。
8、hoverEnterEvent
鼠标光标悬停到这里。光标悬停一进到这个区域就会触发这个函数。进到这个区域的时候只触发一次。
9、hoverLeaveEvent
鼠标光标不在这里悬停了。光标悬停一离开这个区域就会触发这个函数。
10、hoverMoveEvent
鼠标光标在这个区域悬停移动了。光标悬停一移动就会触发这个函数。
11、inputMethodEvent
跟输入法有关。
12、inputMethodQuery
跟输入法有关。
13、itemChange
用来响应Item的一些状态、值变换。在QGraphicsItem有个enum专门用来说明发生了什么变化。比如QGraphicsItem::ItemPositionChange是位置变化,QGraphicsItem::ItemRotationChange是角度变化。
14、keyPressEvent
接收键盘按键响应。在这个函数里面应该写判断按键符号。
15、keyReleaseEvent
接收键盘按键响应。在这个函数里面应该写判断按键符号。
16、mouseDoubleClickEvent
在Item区域里面鼠标双击。
17、mouseMoveEvent
在Item区域里面鼠标移动。这里的移动时鼠标按着移动(左键或右键都有可能触发函数)。
18、mousePressEvent
在Item区域里面鼠标单击,在这个函数里面应该判断左右键。
19、mouseReleaseEvent
在Item区域里面鼠标单击释放,不是双击。
20、prepareGeometryChange
未看。
21、sceneEvent
场景事件,在Item的单击、移动、释放、悬停、聚焦等等事件响应之前响应这个sceneEvent函数。在这个函数里,场景可对Item向下传递或者截留这些鼠标、键盘事件。如果这个函数里没有额外代码,则不影响Item的事件响应。
22、sceneEventFilter
场景事件过滤。
23、updateMicroFocus
未看。
24、wheelEvent
在Item区域里面鼠标滚轮响应。可判断向上滚和向下滚。