View Scene Item 坐标系

本文详细解析了M-V模型的基本概念及应用细节,包括View、Scene和Item的角色定义,重点介绍了坐标系特性、画布大小调整原理及view与scene的绑定方式。

基本概念:还是比较清晰的,M-V模型,View充当显示,Scene是Model,至于Item则是一个个的具体“物体”

细节就不是那么简单直接了

(1)画布的大小。scene就是画布,大小是可以自行决定的,可以扩大缩小。至少在全部scene在view中可见时,大小不影响画的内容 。

(2)坐标系:V-S-I都是直角坐标,原点是TopLeft,向右下延展,和Win32中的类似。

注意:不同的对象的原点是不一样的。 

比如,scene::addItem的操作,item的位置就是用scene的坐标系,而不是view(后面有内容)

(3)view和scene:QGraphicsView::setScene进行绑定。

注意:默认情况下,如果view可以完全显示scene的内容,则scene的按照居中对齐的方式进行显示;

也就是说scene的中心点和view的中心点是重叠的,但scene的原点仍然是自身sceneRect的左上角。这一点十分坑爹。

可以通过QGraphicsView::setAlignment进行设置

注意:这里提到的是“能完全显示”,而不是尺寸;换句话说,如果因为scene被缩小而完全显示,也是居中显示的。 

注意:这个对齐方式仅用于上述情况,如果scene尺寸大于view,则仍然是左上对齐。

客观评价:符合最终用户的思维,但对习惯了程序思维的程序员有点意外啊。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

developer_wgl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值