Qt练习之自定义时钟

       在QtProject中自学Qt时,上面有一个实例是编写时钟的,其中用到了QTimer,信号和槽以及事件的知识,是练习Qt的好例子,本人在实例上添加了秒钟的设置,从而更加像一个使用的时钟表了,下面展示一下运行结果。

Qt练习之自定义时钟_第1张图片

       下面我来和大家分享一下,具体实现,类AnalogClock是自定义类,它继承于QWidget类,下面代码是定义类的构造函数,在其中我定义了一个QTimer类,并为Timer对象添加了信号和槽,槽函数update()每执行一次,都将会调用下面我定义的paintEvent()函数(paintEvent()函数是一个虚函数,我在自定义类中实现重写了它,函数内容将在下面为大家讲到)。

Qt练习之自定义时钟_第2张图片

       一下都是paintEvent()函数内容,下面定义了三个Qpoint 数组,在时钟里分别代表小时,分钟,秒的走针,再定义三个QColor对象,分别为下面小时,分钟,秒走针

设置颜色,


Qt练习之自定义时钟_第3张图片

       获得当前时间值,并创建了painter对象,translate()函数是将Vector(dx,dy)转换为坐标系统,


      下面设置画刷和画笔,分别画出小时的走针和小时的刻度盘其中rotate()函数表示顺时针旋转坐标系统,参数表示旋转的角度,drawConvexPolygon()函数表示画出凸多边形,

Qt练习之自定义时钟_第4张图片

下面设置画刷和画笔,分别画出分钟的走针和分钟的刻度盘

Qt练习之自定义时钟_第5张图片

       下面是本人根据小时和分钟添加的秒钟的编写,其中需要注意的是秒钟的刻度盘的需要旋转的角度,

Qt练习之自定义时钟_第6张图片


以上是更具QtProject中的实例改编。



你可能感兴趣的:(Qt)