//绘制事件
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();
}
}
20230408QT实现时钟
最新推荐文章于 2024-11-05 15:40:32 发布