这几天一直在学习qt
QGraphicsView 、
QGraphicsScene 、QGraphicsItem框架,打算用它做一个绘画工具,需要具备
图形的基本编辑功能,比如:创建、移动、旋转、改变大小等操作。前几天做的测试程序实现了给图形添加控制点、通过鼠标改变图形大小、点选或框选图形等操作,后来又加入了旋转与组合的操作。现在遇到如下
问题需要请教大家:
1、QGraphicsItem的本地坐标问题:
当本地坐标的原点设置为本地图形矩形的左上角,或非中心位置的时候,在做完旋转操作后,如果调整图形大小,本地图形的原点无法设置到正确的位置。
2、通过一个代理类作为QGraphicsItemGroup对象的parent,可以为这个group对象添加和
其他对象一样的鼠标操作,但是,这个对象的pos()却始终不对。结果就是做移动的时候,拖动的位置很奇怪。
3、还有就是通过Qt自带的 QSvgGenerator 无法输出椭圆对象,矩形和直线都没问题。
如图1:绿色圆点为组合对象的transfromOriginPoint,蓝色圆点为组合对象的pos。
图2:拖动组合对象时,pos在组合对象boundingRect之外。
另外附上源码:
测试程序源码 drawcli.zip (50 K) 下载次数:28 请有经验的朋友帮忙指导一下,谢谢。