QPainter can draw
geometric shapes (points, lines, rectangles, ellipses, arcs, chords, pie segments,polygons, and Bézier curves), as well as pixmaps, images, and text. Furthermore,QPainter supports advanced features such as antialiasing (for text andshape edges), alpha blending, gradient filling, and vector paths. QPainter alsosupports linear transformations, such as translation, rotation, shearing, andscaling.By reimplementing QWidget::paintEvent(), we can create custom widgets andexercise complete control over their appearance, as we saw in Chapter 5.
Forcustomizing the look and feel of predefined Qt widgets, we can also specify astyle sheet or create a QStyle subclass; we cover both of these approaches in
使用QPainter 画graphics 必须给他一个a paint device (typically a widget),
void MyWidget::paintEvent(QPaintEvent *event)
{ QPainter painter(this); //THIS IS A widget...}QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);painter.setPen(QPen(Qt::black, 12, Qt::DashDotLine, Qt::RoundCap));painter.setBrush(QBrush(Qt::green, Qt::SolidPattern));painter.drawEllipse(80, 80, 400, 240);