【问题标题】:How to draw an ellipse filled with a certain colour?如何绘制填充某种颜色的椭圆?
【发布时间】:2011-12-19 20:49:30
【问题描述】:

我目前正在做以下事情:

QGraphicsScene *scene;
QPen pen;
pen.setColor(color);
scene->addEllipse(x, y, size, size, pen, QBrush(Qt::SolidPattern));

但是,这是绘制一个带有“颜色”边框的黑色圆圈。如何绘制一个全彩色的椭圆?

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

    QBrush 控制椭圆的填充颜色。在您提供的代码中,您只是给了一个带有纯色图案的画笔(因此是黑色填充)。

    如果您查看各种 QBrush 构造函数,您会注意到有几种不同的类型。您可能最感兴趣的是

    QBrush ( Qt::GlobalColor color, Qt::BrushStyle style = Qt::SolidPattern )
    QBrush ( const QColor & color, Qt::BrushStyle style = Qt::SolidPattern )
    

    这将允许您执行以下操作:

    scene->addEllipse( x, y, size, size, pen, QBrush(Qt::red) );
    

    scene->addEllipse( x, y, size, size, pen, QBrush(QColor("#FFCCDD") );
    

    Qt's QBrush documentation

    【讨论】: