找回密码
 立即注册
收起左侧

自定义的图形项的缩放问题,急(项目需要)

5
回复
6687
查看
[复制链接]

尚未签到

来源: 2014-7-23 10:51:16 显示全部楼层 |阅读模式

马上注册,查看详细内容!注册请先查看:注册须知

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
问题描述:我自定义了一个图形项MyItem,继承自QGraphicsItem,重写的paint方法如下:
painter->setPen(QColor(255,0,0));
        painter->setRenderHint(QPainter::Antialiasing, true);
        QPointF points[3] ={
                QPointF(-18,-2),
                QPointF(-20,2),
                QPointF(-16,2),
                };
        QFont font("宋体",5,QFont::Bold,true);
        painter->setFont(font);
        painter->drawPolygon(points,3);
        painter->drawText(QRectF(-16,-10,36,10),Qt::AlignLeft,"双流");
        painter->drawText(QRectF(-16,0,36,10),Qt::AlignLeft,"ZUUU");

boudingRect方法如下:
qreal penWidth = 1;
        //机场点图形项的边界矩形
        return QRectF(-20 - penWidth / 2, -10 - penWidth / 2,
                40 + penWidth, 20 + penWidth);


我新建几个该图形项,并将它们添加到场景中,然后设定位置。目标是想实现放大缩小的功能,现在我的处理方法是调用视图QGraphicsView的scale()函数,遇到的问题是只是将图形项的字体和三角形放大缩小,而显示出来的图形项之间的距离并没有改变。相当于把图形项放大了,而我并不需要这种效果。想要的效果是放大后,图形项之间的距离也跟着变大变小。请问:yafei老师应该怎么解决?
回复

使用道具 举报

累计签到:894 天
连续签到:1 天
2014-7-23 15:33:22 显示全部楼层
本帖最后由 Syylc120317 于 2014-7-23 18:31 编辑

item不是有个setScale函数吗,void QGraphicsItem::setScale ( qreal factor )
回复 支持 反对

使用道具 举报

尚未签到

2014-7-23 18:36:22 显示全部楼层
Syylc120317 发表于 2014-7-23 15:33
item不是有个setScale函数吗,void QGraphicsItem::setScale ( qreal factor )

这个是放大item的,我需要的效果是放大后,图形项之间的距离也跟着变大。看起来的效果就像是Item变大,距离也变大。
回复 支持 反对

使用道具 举报

累计签到:894 天
连续签到:1 天
2014-7-23 21:20:23 显示全部楼层
xiayuzj 发表于 2014-7-23 18:36
这个是放大item的,我需要的效果是放大后,图形项之间的距离也跟着变大。看起来的效果就像是Item变大,距 ...

那就是缩放view了?
回复 支持 反对

使用道具 举报

尚未签到

2014-7-27 19:06:42 显示全部楼层
Syylc120317 发表于 2014-7-23 21:20
那就是缩放view了?

直接调用view的scale函数的效果,就是只放大了图形项。没达到我想要的效果
回复 支持 反对

使用道具 举报

累计签到:57 天
连续签到:1 天
2014-7-27 23:09:19 显示全部楼层
是不是应该对坐标系进行放大呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了