📄 analogclock.cpp.bak
字号:
#include <QApplication>
#include "analogclock.h"
#include <QPainter>
AnalogClock::AnalogClock(QWidget *parent):QWidget(parent)
{
QTimer *timer = new QTimer(this);
connect(timer,SIGNAL(timeout(),this,SLOT(update())));
timer->start(1000);
setWindowTitle("Analog Clock");
resize(200,200);
}
void AnalogClock::paintEvent(QPaintEvent *)
{
static const QPoint hourHand[3]={
QPoint(7,8);
QPoint(-7,8);
QPoint(0,-40);
}
static const QPoint minuteHand[3]={
QPoint(7,8);
QPoint(-7,8);
QPoint(0,-70);
}
static const QPoint secondHand[3]={
QPoint(7,8);
QPoint(-7,8);
QPoint(0,-90);
}
QColor hourColor(127,0,127);
QColor minuteColor(127,127,0);
int side=qMin(width(),height());
QTime time=QTime::currentTime();
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.translate(width()/2,height()/2);
painter.scale(side/200.0,side/200.0);
painter.setPen(QT::NoPen);
painter.setBrush(hourColor);
painter.save();
painter.rotate(30.0*((time.hour()+time.minute()/60.0)));
painter.drawConvexPolygon(hourHand,3);
painter.restore();
painter.setPen(hourColor);
for(int i = 0;i < 12,++i) {
painter.drawLine(88,0,96,0);
painter.rotate(30,0);
}
painter.setPen(QT::NoPen);
painter.setBrush(minuteColor);
painter.save();
painter.rotate(6.0*(time.minute()+time.second()/60.0)));
painter.drawConvexPolygon(minuteHand,3);
painter.restore();
painter.setPen(minuteColor);
for(int j = 0;j < 60;++j) {
if((j%5)!=0) {
painter.drawLine(92,0,96,0);
painter.rotate(6,0);
}
}
}
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
AnalogClock clock;
clock.show();
return app.exec();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -