对于Qt中的图形绘制,最基础的元素之一就是QPainter类,创建一个绘图的设备接口,就可以在绘图设备的“画布”上绘图了
paintEvent()事件里绘图的基本结构是:
void MainWindow::paintEvent(QPaintEvent *)
{
QPainter painter(this);
........
}
QPen:用于控制线条的颜色,宽度,线型等
QBrush:用于设置一个填充特性,设置填充颜色,填充方式,渐变特性等
QFont:用于绘制文字时,设置文字的字体样式,大小等属性
坐标平移:void translate (qreal dx,qreal dy)
坐标旋转:void rotate(qreal angle)
坐标缩放:void scale (qreal sx,qreal sy)
sx和sy 表示横向和纵向缩放比例,比例大于1是放大,小于1是缩小
状态保存与恢复:在坐标变换是,QPainter内部实际上是有一个坐标变换矩阵的,用save()保存当前坐标状态,用 restore()恢复上次保存的坐标状态,这两个配对使用
resetTransform()函数则是复位所有的坐标变换操作,恢复原始的坐标系统
下面绘制时钟代码:
#include "mainwindow.h"
#include <QLabel>
#incl