Qt5菜鸟入门(1)qt时钟
来源:互联网 发布:倚天分析软件 编辑:程序博客网 时间:2024/05/19 20:49
一直想学Qt很久了,但是总觉得没空(有其他的事忙),今天终于开始了第一步。
今天看了一个Qt creator编的系统时钟例子,也看了系统自带的一些例子(qt5 的系统自带例子是放在qt creator欢迎页面的例子里面,汗!字太小,开始还没找到。。)。
自己照着视频讲解编写了第一个程序--qt时钟。(网址:http://v.youku.com/v_show/id_XMTgzMjA5NDg4.html 网址:http://www.tudou.com/programs/view/xDH6q0kYLVA/)
包含文件:
(1)clock.h 内容:
#ifndef CLOCK_H
#define CLOCK_H
#include <QWidget>
#include <QPainter>
#include <QPoint>
static QPoint sed[4]={QPoint(0,-70),QPoint(2,0),QPoint(0,10),QPoint(-2,0)};
static QPoint min[4]={QPoint(0,-60),QPoint(4,0),QPoint(0,12),QPoint(-4,0)};
static QPoint hou[4]={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
(2)clock.cpp 内容:#include <QApplication>
#include "clock.h"
#include <QTime>
#include <QTimer>
Clock::Clock(QWidget *parent)
:QWidget(parent)
{
QTimer *timer = new QTimer(this);
timer->start(1000);
connect(timer,SIGNAL(timeout()),this,SLOT(update()));
resize(200,200);
}
Clock::~Clock()
{
}
void Clock::paintEvent(QPaintEvent *)
{
QPainter paint(this);
//paint.drawLine(0,0,100,100);
QTime time = QTime::currentTime();
paint.translate(100,100);
// paint.drawLine(0,0,100,100);
paint.setRenderHint(QPainter::Antialiasing);
paint.setBrush(Qt::red);
paint.setPen(Qt::red);
paint.save();
paint.rotate(6.0*time.second());
paint.drawConvexPolygon(sed,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,5);
paint.restore();
paint.setBrush(Qt::black);
paint.setPen(Qt::black);
paint.save();
paint.rotate(30.0*(time.hour()+time.minute()/60.0));
paint.drawConvexPolygon(hou,5);
paint.restore();
//paint.drawLine(0,-88,0,-98);
for(int i=0;i<12;i++)
{
paint.rotate(30);
paint.drawLine(0,-88,0,-98);
}
}运行的效果如下:
0 1
- Qt5菜鸟入门(1)qt时钟
- QT菜鸟入门第三弹:模拟时钟例程
- 【菜鸟学Qt 1】QT5.3.2新版本+VS2013平台搭建
- Qt5菜鸟入门(4):使用QSlider创建滑动条
- QT菜鸟入门第四弹:模拟时钟例程中的六个新家伙
- 【Qt菜鸟】QTextCodec在Qt5中的改变
- QT5入门之1 - QT下载与安装
- 【菜鸟入门】stm32 之 实时时钟
- Qt5菜鸟入门(2) 连接信号槽和信号小例子
- QT5入门之6 - Qt提示对话框
- QT5入门之21 -QT读写注册表
- QT5入门之22 -QT状态栏
- QT5入门之23 -QT串口编程
- QT5入门之24 -QT 容器
- QT5入门之25 -QT 事件
- QT5入门之31-QT QListWidget
- QT5入门之32-QT QTtableWidget
- QT5入门之31-QT QTreeWidget
- 关于jsp学习第一天
- swoole入门教程03-Timer定时器、心跳检测及Task进阶实例:mysql连接池
- java学习:抽象类和接口
- c的指针*和引用&
- HDU-1873-看病要排队
- Qt5菜鸟入门(1)qt时钟
- C语言学习小结1
- 天气APP实战二 ( 创建表和包的结构)
- 最短加法链问题,POJ2248,BFS,搜索
- 黑马程序员--Java基础之面向对象(上)
- JS 简单的轮播特效示例
- ActivityGroup
- Java命令行编译和运行的错误解决--classpath
- 双链表解决Josephus问题