#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QPainter>
#include <QTime>
#include <QTimer>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
void paintEvent(QPaintEvent *event) override;
private:
Ui::Widget *ui;
QTimer *t1;
int count =0;
int second=50;
int hour=3;
int minute=40;
};
#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
t1=new QTimer;
t1->start(1000);
connect(t1,&QTimer::timeout,[&](){
count++;
update();
});
QString s=QDateTime::currentDateTime().toString("h:m:s");
}
Widget::~Widget()
{
delete ui;
}
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QPen pen;
pen.setStyle(Qt::SolidLine);
pen.setColor(QColor("yellow"));
pen.setWidth(4);
painter.setPen(pen);
painter.drawEllipse(0,0,600,600);
pen.setStyle(Qt::DotLine);
pen.setColor(QColor("black"));
painter.setPen(pen);
painter.translate(300,300); //原点设置为300 300
for(int i=0;i<60;i++)
{
painter.rotate(6);
painter.drawLine(QPoint(300,0),QPoint(290,0));
}
for(int i=1;i<=12;i++)
{
painter.rotate(30);
painter.drawText(QPoint(0,-280),QString("%1").arg(i));
}
pen.setStyle(Qt::SolidLine);
pen.setColor(QColor("green"));
pen.setWidth(2);
painter.setPen(pen);
painter.rotate(6*second);
painter.drawLine(QPoint(0,0),QPoint(0,-200));
painter.rotate(360-6*second);
pen.setColor(QColor("blue"));
pen.setWidth(8);
painter.setPen(pen);
painter.rotate(6*minute+second/60);
painter.drawLine(QPoint(0,0),QPoint(0,-150));
painter.rotate(360-6*minute-second/60);
pen.setColor(QColor("red"));
pen.setWidth(16);
painter.setPen(pen);
painter.rotate(hour*30+minute/60);
painter.drawLine(QPoint(0,0),QPoint(0,-100));
}