C++写的时钟(详细注释)
#include "clock.h"
Clock::Clock(QWidget *parent)
: QWidget(parent)
{
resize(200,200); //设置窗口大小
QTimer *timer = new QTimer(this) ;//使用定时器,1s刷新一次
timer->start(1000);/./定时器时间为1s
connect(timer ,SIGNAL(timeout()) ,this , SLOT(update()) );//信号是定时器,槽是刷新函数
}
Clock::~Clock()
{
}
void Clock::paintEvent(QPaintEvent *)
{
QPainter paint(this);
QTime time = QTime::currentTime();//获取当前时间
paint.translate(100,100);//平移坐标系
paint.setRenderHint(QPainter::Antialiasing);//设置曲线光滑
paint.setBrush(Qt::red);//设置画刷画笔颜色
paint.setPen(Qt::red);
paint.save();//保存坐标系当前状态
paint.rotate(6.0*time.second());//坐标轴顺时针旋转
paint.drawConvexPolygon(sec,4);//四点画多边形(指针形状)
paint.restore();//恢复坐标轴
paint.setBrush(Qt::blue);
paint.setPen(Qt::blue);
paint.save();
paint.rotate(6.0*(time.minute()+time.second()/60.0));
paint.drawConvexPolygon(min,4);
paint.restore();
paint.setBrush(Qt::black);
paint.setPen(Qt::black);
paint.save();
paint.rotate(30.0*(time.hour()+time.minute()/60.0));
paint.drawConvexPolygon(hour,4);
paint.restore();
for(int i = 0 ; i<12 ; i++)//十二次旋转坐标轴,画表盘
{
paint.rotate(30);
paint.drawLine(0,-100,0,-90);
}
}
clock.h为什么我提示没有?
楼主自己写的? JayChen 发表于 2015-1-27 20:24
clock.h为什么我提示没有?
楼主自己写的?
是的
没有发完整,只发了核心部分,下面是clock.h#ifndef CLOCK_H
#define CLOCK_H
#include <QWidget>
#include <QPainter>
#include <QPoint>
#include <QTime>
#include <QTimer>
static QPoint sec = {QPoint(0,-70),QPoint(2,0),QPoint(0,10),QPoint(-2,0)};
static QPoint min = {QPoint(0,-60),QPoint(4,0),QPoint(0,12),QPoint(-4,0)};
static QPoint hour = {QPoint(0,-50),QPoint(6,0),QPoint(0,13),QPoint(-6,0)};
class Clock : public QWidget
{
Q_OBJECT
public:
Clock(QWidget *parent = 0);
~Clock();
protected:
void paintEvent(QPaintEvent *);
};
#endif // CLOCK_H
忘了说,用的不是MFC而是QT类库:ton: 额,建议发代码用代码格式,好看一点:lol: 短小精悍 很强大 。。。新鱼油,以后会注意的 nb 回帖挣鱼币 顶 我要鱼币 还真是盗版商:huffy: freeparty 发表于 2015-1-28 22:23
还真是盗版商
什么意思???????????? 开源万岁 发表于 2015-1-28 23:03
什么意思????????????
发错了 学习一下,感谢楼主分享。 aswyamato1989 发表于 2015-1-30 13:54
学习一下,感谢楼主分享。
一起学习 这用什么软件啊 我是初学者,不是用的Code::Blocks软件运行吧? w1933918191 发表于 2015-1-30 22:31
这用什么软件啊 我是初学者,不是用的Code::Blocks软件运行吧?
使用的QT类库,就是用C++调用QT类库,和用C++ 调用MFC类库一样,编译器可以用CodeBlocks ,VC6.0,VS ,QT Creater 学习了 我去看看C++的绘图函数吧
页:
[1]
2