先展示最终的效果图
绘制时针、分针、秒针
定义三个数组,数组中的三个点连起来就是时针、分针、秒针。
/* 时分秒所描绘不规则形状和长度 */
static const QPoint hourHand[3] =
{
QPoint(4,4),
QPoint(-7,8),
QPoint(0,-40)
};
static const QPoint minuteHand[3] =
{
QPoint(4,4),
QPoint(-7,8),
QPoint(0,-70)
};
static const QPoint secondHand[3] =
{
QPoint(4,4),
QPoint(-7,8),
QPoint(0,-80)
};
//填充颜色,具体颜色我是百度的
QColor hourColor(255,255,255);
QColor minuteColor(255,255,255);
QColor secondColor(255,255,255);
一些其他
int side = qMin(this->width(),this->height());
QTime time = QTime::currentTime(); //当前系统时间
painter.translate(this->width()/2.05,this->height()/1.90); //平移坐标原点
painter.setRenderHint(QPainter::Antialiasing); // 反锯齿,好看点
painter.scale(side/240.0,side/240.0); //伸缩
表盘+时、分、秒钟
/******************** 时钟 ********************/
painter.setPen(Qt::NoPen);
painter.setBrush(hourColor);
painter.save();
painter.rotate(30.0 * (time.hour() + time.minute() / 60.0)); //将坐标系旋转 角度转换30度
painter.drawConvexPolygon(hourHand,3); <