使用drawRect和QQuickPaintedItem :: paint()

时间:2014-12-05 09:25:26

标签: qt qml

我写了一个示例代码:

class Element : public QQuickPaintedItem
{
    void paint(QPainter *painter)
    {   
        painter->setBrush(Qt::blue);
        painter->drawRect(contentsBoundingRect());
    }
}  

和qml:

Element {       
    x : 19
    y : 37
    width : 371
    height : 201
}

左边缘和上边缘都很好,但右边缘和下边缘消失了!

我犯了一些错误吗?

ps:我在WIN XP中使用QT5.3

1 个答案:

答案 0 :(得分:3)

The bottom and right edge are drawn outside of the bounding rect

在这里,您可以看到使用以下代码时如何绘制矩形:

QPainter painter(this);

painter.setPen(Qt::darkGreen);
painter.drawRect(1, 2, 6, 4);

您可以尝试绘制antialiased rectangle,虽然它可能看起来很奇怪并且在右下边缘处切断,或者您可以从底部和右边缘中减去1。