0

是否可以重新绘制QGroupBox六边形而不是矩形的边界?

更新:我可以画六边形QGroupBox。我可以在外面画画boudingrect还是可以扩大规模boundingrect

QPainterPath MyGroupBox::getHexagonPath( const QPointF &pos,
                                  const QSizeF &size )
{     
    QPainterPath path;

    const double cos30 = 0.866025; 

    const double dx = 0.25 * size.width() - pos.x();  // 0.5 * size.width() - cos30;
    const double dy = 0.5  * size.height() - pos.y() - cos30;

    double x1 = pos.x(); // - 2 * dx;
    double y1 = pos.y(); // - dy;

    const double x2 = x1 + 1 * dx;
    const double x3 = x1 + 3 * dx;
    const double x4 = x4 + 4 * dx;

    const double y2 = y1 + 1 * dy;
    const double y3 = y1 + 2 * dy;

    QPolygonF hexagon;
    hexagon += QPointF( x1, y2 );
    hexagon += QPointF( x2, y1 );
    hexagon += QPointF( x3, y1 );
    hexagon += QPointF( x4, y2 );
    hexagon += QPointF( x3, y3 );
    hexagon += QPointF( x2, y3 );

    path.addPolygon( hexagon );        
    path.closeSubpath();
    return path;
}
4

0 回答 0