shape из двух прямоугольников

 
0
 
C++
ava
math64 | 18.02.2013, 15:58
Для своего GraphicsItem нужно вычислить shape.

QPainterPath GraphicsItem::shape() const {
       QPainterPath path;
       path.addPath(getPath1() );
       path.addPath(getPath2() );
       return path;
}
QPainterPath GraphicsItem::getPath1() const {
       QPainterPath path;
       path.addRect(QRect(0,0,100,100) );
       return path;
}
QPainterPath GraphicsItem::getPath2() const {
       QPainterPath path;
       path.addRect(QRect(10,10,80,80) );
       return path;
}

В результате получается, что второй прямоугольник не добавляется, а вычитается.
Как правильно добавить путь, чтобы этого не было?

Добавлено позднее:
Вот так работает:

QPainterPath GraphicsItem::shape() const {
       QPainterPath path;
       path.setFillRule(Qt::WindingFill);
       path.addPath(getPath1() );
       path.addPath(getPath2() );
       return path;
}
QPainterPath GraphicsItem::getPath1() const {
       QPainterPath path;
       path.setFillRule(Qt::WindingFill);
       path.addRect(QRect(0,0,100,100) );
       return path;
}
QPainterPath GraphicsItem::getPath2() const {
       QPainterPath path;
       path.setFillRule(Qt::WindingFill);
       path.addRect(QRect(10,10,80,80) );
       return path;
}
Ответы (0)

Комментарии не добавлены

Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
  math64
advanced
Отправить