QT圆边矩形

时间:2017-05-26 07:23:11

标签: qt rounding qrect

我使用以下代码使矩形边缘变圆......但左上角和右上角与左下角不同。

我该如何解决这个问题?

   QRegion ErrorCallout::roundRect(const QRect& rect, int r)
{
    QRegion region;

    // middle and borders
    region += rect.adjusted(r, 0, -r, 0);
    region += rect.adjusted(0, r, 0, -r);

    // top left
    QRect corner(rect.topLeft(), QSize(r*2, r*2));
    region += QRegion(corner, QRegion::Ellipse);

    // top right
    corner.moveTopRight(rect.topRight());
    region += QRegion(corner, QRegion::Ellipse);

    // bottom left
    corner.moveBottomLeft(rect.bottomLeft());
    region += QRegion(corner, QRegion::Ellipse);

    // bottom right
    corner.moveBottomRight(rect.bottomRight());
    region += QRegion(corner, QRegion::Ellipse);

    return region;
}

this->roundRect(rect,5);

如下所示: enter image description here

0 个答案:

没有答案