20230408QT实现时钟

//绘制事件
void Widget::paintEvent(QPaintEvent *event)
{
    QPainter p(this);

    //设置画家的起点
    p.translate(this->width()/2,this->height()/2);
//  p.setBrush(QBrush(QColor("Hsl")));
    p.drawEllipse(QPoint(0,0),200,200);
    //画时刻表
    p.setPen(QColor(255,0,0));
    for(int i=0;i<60;i++){
        p.drawLine(200,0,190,0);
        p.rotate(6);
    }
    //画小时格
    QPen pen;
    pen.setWidth(45);
    for(int i=1;i<=12;i++){
        p.rotate(30);
        p.drawText(0,-180,QString("%1").arg(i));
        p.drawLine(0,200,0,185);
    }
    //绘制时针分针秒钟
        p.rotate(-90);
        int s=ss*6;
        int m=mm*6+ss*6/60;
        int h=(hh%12)*30+mm*6/12+ss*6/60/12;
        p.rotate(s);
        p.setPen(QColor(78,58,207));
//      pen.setWidth(l);
        p.drawLine(0,0,100,0);
        p.rotate(m-s);
        p.drawLine(0,0,75,0);

        p.rotate(h-(m-s)-s);
        p.drawLine(0,0,50,0);
}
//重写时间事件
void Widget::timerEvent(QTimerEvent *event)
{
   //启动定时器
   if(t_id==event->timerId()){
       QTime systime=QTime::currentTime();
       QString time=systime.toString("hh:mm:ss");
       QStringList list=time.split(":");
//       for(QString val:list){
//            qDebug()<<val;
//       }
       hh=list[0].toUInt();
       mm=list[1].toUInt();
       ss=list[2].toUInt();
       update();
   }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值