阐述
此文仅记录标题中说的函数drawPath与fillPath的一点区别。
编写项目的过程中发现drawPath可以根据对画笔和画刷的设置,所绘制的图形含有边框和内部填充颜色,而fillPath即使设置了画笔和画刷的颜色,只会在绘制的图形中填充颜色,不会有边框。
简单看一下下面的代码:
QPainter painter(this);painter.setPen(m_pen);painter.setBrush(m_brush);painter.setRenderHint(QPainter::Antialiasing, true);QPainterPath path;path.moveTo(m_triangle.startX,m_triangle.startY);path.lineTo(m_triangle.startX,m_triangle.startY);path.lineTo(m_triangle.endX,m_triangle.endY);path.lineTo(m_triangle.endX - 2*(m_triangle.endX - m_triangle.startX),m_triangle.endY);path.lineTo(m_triangle.startX,m_triangle.startY);painter.drawPath(path);//可以绘制边框线
以上是在paintEvent函数中实现的绘制三角形的部分代码,将上述代码中最后一行换为:
painter.fillPath(path,m_brush);
绘制除的图形只是被填充了颜色,没有边框线了。要是想要边框线,同时又要被填充,选择第一种方式的绘制路径drawPath函数来实现。