QPainter 能繪制: point, line, rectangle, ellipse, arc, chord, polygon, pie segment, Bezier curve, QPixmap, QImge
Qt支持的高級特性: antialising, alpha blending, gradient fill, vector path.
QPainter在什么上繪制呢? 在"paint device": QWidget, QPixmap, QImage, QSvgGenerator, 連接QPrinter來打印和生成PDF文檔.
通常在protected void paintEvent(QPaintEvent *event)中進行繪制.
protected :
virtual void paintEvent(QPaintEvent *event) {
QPainter painter(this); // Pointer of the paint device
..
}
QPainter的3個主要設(shè)置是: pen, brush, font.
painter.setPen(QPen(..));
painter.setBruch(QBrush(..));
painter.setFont(QFont(..));
painter.setRenderHint(QPainter::Antialiasing, true);
設(shè)置了bursh之后, 畫的是效果即fill.
QPainter的屬性影響繪制的圖形.
通常使用painter.paintXXX(..)來繪制圖形.