Qt 画一个圆

Qt 画一个圆,qt,Qt,我已经写了一个函数,它必须在我的GraphicsCenter上画一个填充的黑色圆圈。该函数绘制了一个黑色线条的圆,但没有填充?这是我的职责: void World::damage(int x, int y) { QPainter painter(&worldImage); painter.setBrush(QBrush(Qt::black)); painter.drawArc(x,y,150,50,0,16*360); item = new QGraphi

我已经写了一个函数,它必须在我的GraphicsCenter上画一个填充的黑色圆圈。该函数绘制了一个黑色线条的圆,但没有填充?这是我的职责:

void World::damage(int x, int y)
{
    QPainter painter(&worldImage);
    painter.setBrush(QBrush(Qt::black));
    painter.drawArc(x,y,150,50,0,16*360);
    item = new QGraphicsPixmapItem(QPixmap::fromImage(worldImage));
    this->addItem(item);

}
亲切问候,

drawArc()
不使用填充颜色,用于填充的完整圆圈。

drawEllipse()
单独解决了我的问题

我刚刚添加了
painter.setBrush(Qt::red)

drawerlipse()之前


而且工作得非常完美。

嗨,这不会导致每次小部件进入视口或用户编辑小部件的其他部分时都会重新绘制吗?那不是很贵吗?难道没有一种方法可以一劳永逸地绘制它吗?Qt绘制系统试图在绘制事件触发时进行优化,以尽可能减少不必要的重新绘制,并且在大多数情况下已经足够了。如果绘制操作复杂或频繁重新绘制,可以通过绘制像素贴图并缓存它来引入优化。作为记录,在绘制圆之前,请使用
painter.setPen()
设置形状边框样式/颜色,并使用
painter.setBrush()
设置填充样式/颜色。