• 11594阅读
  • 8回复

boundingrect() 与shape() [复制链接]

上一主题 下一主题
离线dream3938487
 
只看楼主 正序阅读 楼主  发表于: 2009-12-10
例如:这是qt的源代码里的关于QGraphicsLineItem::boundingRect()

QRectF QGraphicsLineItem::boundingRect() const
{
    Q_D(const QGraphicsLineItem);
    if (d->pen.widthF() == 0.0) {
        const qreal x1 = d->line.p1().x();
        const qreal x2 = d->line.p2().x();
        const qreal y1 = d->line.p1().y();
        const qreal y2 = d->line.p2().y();
        qreal lx = qMin(x1, x2);
        qreal rx = qMax(x1, x2);
        qreal ty = qMin(y1, y2);
        qreal by = qMax(y1, y2);
        return QRectF(lx, ty, rx - lx, by - ty);
    }
    return shape().controlPointRect();
}
当我先中这个直线的时候,会出来他的外包框(一个矩形),但现在我不想要显示这个矩形,应该怎么才能做到呢?谢谢各位朋友


还有一个问题,下面这个是qt源代码中的 QGraphicsPolygonItem::shape()

QPainterPath QGraphicsPolygonItem::shape() const
{
    Q_D(const QGraphicsPolygonItem);
    QPainterPath path;
    path.addPolygon(d->polygon);
    return qt_graphicsItem_shapeFromPath(path, d->pen);
}
当我生成一个不闭合的多拆线时,例如:a->b->c->d.这个shape的QPainterPath好像是a->b->c->d->a,我想要的是a->b->c->d.请问如何才能做到啊,谢谢各位朋友,大家相互学习啊
离线zhaifd

只看该作者 8楼 发表于: 2012-07-23
回 7楼(mzone) 的帖子
离线mzone

只看该作者 7楼 发表于: 2012-07-23
回 6楼(dream3938487) 的帖子
你的实现了?我的怎么不行啊
离线dream3938487
只看该作者 6楼 发表于: 2009-12-20
xie xie a
离线sbtree
只看该作者 5楼 发表于: 2009-12-15
引用第4楼dream3938487于2009-12-14 14:28发表的  :
重写pain()可以做到选中时的外包框,但是shape如何确定,就是只有真正点到物体时,才可以选中物体,如下图是由一些线组成的一个item,我想实现只有选中线时才让这个item被选中如第二个图

同样重写shape函数,把你的那些线加到一个QPainterPath里面,然后通过这个函数返回就行了
windows 7 + VC++2008 + Qt4.5.2
离线dream3938487
只看该作者 4楼 发表于: 2009-12-14
重写pain()可以做到选中时的外包框,但是shape如何确定,就是只有真正点到物体时,才可以选中物体,如下图是由一些线组成的一个item,我想实现只有选中线时才让这个item被选中如第二个图
离线sbtree
只看该作者 3楼 发表于: 2009-12-11
重写paint函数
windows 7 + VC++2008 + Qt4.5.2
离线mpx1983

只看该作者 2楼 发表于: 2009-12-11
再顶下~ 别沉呀
我已经给graphicsview加过stylesheet了,设置了graphicsview->setStyleSheet("bording-style:slot;bording-color:#FF0000");还是没效果。。。
离线mpx1983

只看该作者 1楼 发表于: 2009-12-10
顶楼主!
我现在有类似的问题不知道如何处理。
我想在鼠标点击graphicsView时,使graphicsView可以获得一个虚线边框,表示当前被激活选中;
貌似和楼主需求相反,请知道的大侠一起给我们解决下~
快速回复
限100 字节
 
上一个 下一个