QT的Transform的一些理解

初涉QT,确实是很多困扰,写了2的月图形变换,有些感想。

1.多个QGraphicsItem进行图形变换,在这个项目中,我把他们都放在了group里,变换完之后再把他们从group中取出,放回到scene。

Item到Scene的变换,sceneTransform()是比较可靠的。如果只取Item的transform(当Item在scene中时,我经常会习惯性的认识是和sceneTransform一致的),一定要看看他的position是否为0, transform和positon合到一起,才和sceneTransform一致。

2.QGraphicsView是一个QWidget,而QGraphicsView的重绘,尤其是view里面的Item有改变时,要使用viewport().repaint()试一下,看看能不能重绘。

3.关于QGraphicsView的拖拽(按鼠标锚点或中心点),经过多次尝试,我最终时这样实现的,用 setSceneRect先设置一个很大很大的区域,把view设置成setTransformationAnchor(QGraphicsView::NoAnchor),然后使用view的translate, scale,setTransform自己进行矩阵运算。其他的靠拖拽滚动条什么方式,我都没有实现,看网上有实现的,但我尝试了很次都是有问题,最后还是靠计算view大的矩阵实现了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值