|
问题描述:我自定义了一个图形项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老师应该怎么解决?
|
|