Qt中怎么给一个用drawLine绘制的封闭的多边形的填充颜色

Qt中如何给一个用drawLine绘制的封闭的多边形的填充颜色?
本帖最后由 luohao1213 于 2013-10-08 17:13:03 编辑

最近因为工作需要,刚接触Qt不久,最近就遇到了这样一个问题。
Qt中怎么给一个用drawLine绘制的封闭的多边形的填充颜色


如图,在一个圆内,蓝色线圈起的区域是用drawLine()把360个点连起来的不规则的封闭图形,我试着用setBrush()设置,但是还是没效果。因为对Qt不是很熟练,想请教下各位可以有什么解决方法。
(我的意思就是把这个蓝色区域里的颜色填充成单一的颜色,比如蓝色)
我的设置方法是在设置画笔的时候就设置画刷:

painter.setPen(QPen(Qt::blue,1,Qt::SolidLine));
painter.setBrush(QBrush(Qt::blue,Qt::SolidPattern));

这样设置没效果。

是不是我不该用drawLine来连线呢?
请各位多多帮忙哈!
Qt中怎么给一个用drawLine绘制的封闭的多边形的填充颜色
谢谢!
Qt 绘图 drawLine setPen setBrush

------解决方案--------------------

void QPainter::drawPath ( const QPainterPath & path )
void QPainter::fillPath ( const QPainterPath & path, const QBrush & brush )

就ok了。。
何不用第三方控件呢。。
ChartDirector 完全满足你的要求。。有破解版(哈哈)
Qt中怎么给一个用drawLine绘制的封闭的多边形的填充颜色
这是一个简单例子。
------解决方案--------------------
用QPolygon可以实现。
Qt中怎么给一个用drawLine绘制的封闭的多边形的填充颜色
PolygonWidget::PolygonWidget(QWidget *parent) : QWidget(parent), ui(new Ui::PolygonWidget) {
    ui->setupUi(this);

    polygon << QPoint(20, 20);
    polygon << QPoint(122, 25);
    polygon << QPoint(130, 120);
    polygon << QPoint(140, 150);
    polygon << QPoint(20, 110);
    polygon << QPoint(0, 50);
}

PolygonWidget::~PolygonWidget() {
    delete ui;
}

void PolygonWidget::paintEvent(QPaintEvent *event) {
    Q_UNUSED(event);

    QPainter painter(this);
    painter.setBrush(Qt::red);
    painter.drawConvexPolygon(polygon);
}