一、基本绘制和填充
1.QPainter对象
先创建一个QPainter对象,该对象必须在开始绘制时指定绘制设备,可以在构造时指定,也可以使用如下方式:
QPainter painter;
painter.begin(this);
painter.drawLine(QPoint(0,0),QPoint(100,100));
painter.end;
2.画笔或画刷
画笔QPen参数
const QBrush &brush //画刷
qreal width //线宽
Qt::PenStyle //画笔风格
Qt::PenCapStyle //画笔端点风格
Qt::PenJoinStyle //画笔连接风格
QBrush提供了画刷来填充图形,可以配合QGradient类指定渐变填充
QLinearGradient linearGradient(p1, p2)//线性渐变,指定开始点和结束点
linearGradient.setSpread()//指定渐变区域以外的扩散方式
QRadialGradient radialGradient(p1, r, p2)//辐射渐变,指定圆心,半径,焦点
QConicalGradient conicalGradient(p1, a)//锥形渐变,指定中心点和角度
二、坐标系统
1.基本变换
scale() //缩放
rotate() //顺时针旋转
translate() //平移坐标系统
shear() //围绕圆点扭曲坐标系统
QPainter::save() //储存变换矩阵
QPainter::restore() //将变换矩阵弹出
2.窗口和视口
视口:物理坐标下指定的一个任意矩形;
窗口:逻辑坐标下的相同矩形;
三、其他绘制
1.绘制路径
QPainterPath path;
path.moveTo(x, y); //移动当前点
path.lineTo(x, y); //绘制直线
path.cubicTo(p1, p2, p3); //绘制三次贝塞尔曲线
path.addEllipse(p1, a, b); //向路径中添加一个椭圆
2.绘制图像
QImage//提供与硬件无关的图像表示方法,可以直接访问像素数据,也可以作为绘图设备
QPixmap//作为一个绘图设备将图像显示在屏幕上,其中像素有底层的窗口系统来进行管理
QPicture//可以记录和重演QPainter命令