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

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

谢谢!
------解决方案--------------------
就ok了。。
何不用第三方控件呢。。
ChartDirector 完全满足你的要求。。有破解版(哈哈)

这是一个简单例子。
------解决方案--------------------
用QPolygon可以实现。

最近因为工作需要,刚接触Qt不久,最近就遇到了这样一个问题。
如图,在一个圆内,蓝色线圈起的区域是用drawLine()把360个点连起来的不规则的封闭图形,我试着用setBrush()设置,但是还是没效果。因为对Qt不是很熟练,想请教下各位可以有什么解决方法。
(我的意思就是把这个蓝色区域里的颜色填充成单一的颜色,比如蓝色)
我的设置方法是在设置画笔的时候就设置画刷:
painter.setPen(QPen(Qt::blue,1,Qt::SolidLine));
painter.setBrush(QBrush(Qt::blue,Qt::SolidPattern));
这样设置没效果。
是不是我不该用drawLine来连线呢?
请各位多多帮忙哈!
谢谢!
Qt
绘图
drawLine
setPen
setBrush
------解决方案--------------------
void QPainter::drawPath ( const QPainterPath & path )
void QPainter::fillPath ( const QPainterPath & path, const QBrush & brush )
就ok了。。
何不用第三方控件呢。。
ChartDirector 完全满足你的要求。。有破解版(哈哈)
这是一个简单例子。
------解决方案--------------------
用QPolygon可以实现。
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);
}