采用QPainter绘图时需要在绘图设备的paintEvent()事件里编写绘图程序,实现整个绘图过程。此种方法绘制的图形时位图,适合于绘制复杂度不高的固定图形,不能实现图件的选择、编辑、拖放、修改等功能。
基类 |
QPaintDevice(绘图设备,可以理解成“画板”’) |
派生类 |
QGLFramebufferObject, QGLPixelBuffer, QImage, QOpenGLPaintDevice, QPagedPaintDevice, QPaintDeviceWindow, QPicture, QPixmap, QSvgGenerator, and QWidget |
一、 在上一篇文章的基础上,采用QPainter提供的功能,绘制一个五角星实例。
void Widget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing); // 反走样
painter.setRenderHint(QPainter::TextAntialiasing); // 反走样
// 生成五角星的5个顶点的,假设原点在五角星中心
qreal R=100; //半径
const qreal Pi=3.14159;
qreal deg=Pi*72/180;