#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//实例化一个定时器
timer=new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(update()));
connect(timer,SIGNAL(timeout()),this,SLOT(show()));
timer->start(1000);
}
Widget::~Widget()
{
delete ui;
}
//绘制事件处理函数的定义
void Widget::paintEvent(QPaintEvent *event)
{
//实例化一个画家
QPainter painter(this);
//实例化一个画笔
QPen pen; //无参构造
//设置起始位置
painter.translate(width()/2,height()/2);
static const QPoint hourHand[3]={QPoint(7,14),QPoint(-7,14),QPoint(0,-50)};
static const QPoint minuteHand[3]={QPoint(5,14),QPoint(-5,14),QPoint(0,-65)};
static const QPoint secondHand[3]={QPoint(3,14),QPoint(-3,14),QPoint(0,-88)};
// static const QPoint line_long[2]={
// QPoint(0,100),
// QPoint(0,85)
// };
// static const QPoint line_short[2]={
// QPoint(0,100),
// QPoint(0,95)
// };
QTime time=QTime::currentTime();
//旋转角度
painter.rotate(30.0*((time.hour()+time.minute()/60.0)));
//设置时针 三根
painter.drawConvexPolygon(hourHand,3);
//恢复当前画家状态
painter.restore();
painter.setPen(Qt::black);
//时针的刻度
for(int i=0;i<12;++i)
{ //画线
painter.drawLine(0,0,0,10);
if(i==0)
{
painter.drawText(-20,-82,40,40,Qt::AlignHCenter|Qt::AlignTop,QString::number(12));
}
else
painter.drawText(-20,-82,40,40,Qt::AlignHCenter|Qt::AlignTop,QString::number(i));
painter.rotate(30.0);
}
painter.setPen(Qt::black);
painter.setBrush(Qt::black);
//保存状态
painter.save();
//绘制分针转角
painter.rotate(6.0*(time.minute()+time.second()/60.0));
painter.drawConvexPolygon(minuteHand,3);
painter.restore();
painter.setPen(Qt::black);
//分针刻度
for(int j=0;j<60;++j)
{
if((j%5)!=0)
painter.drawLine(0,0,0,20);
painter.rotate(6.0);
}
painter.setPen(Qt::black);
painter.setBrush(Qt::black);
painter.save();
//绘制秒针转角
painter.rotate(6.0*time.second());
painter.drawConvexPolygon(secondHand,3);
painter.restore();
}
void Widget::setTime(QTime)
{
}
void Widget::showTime()
{
QTime time=QTime::currentTime();
QString txtTime=time.toString("hh:mm:ss");
}