用QT做一个时钟

本文介绍了一个使用QT库实现的简单数字时钟程序。该程序能够实时更新显示当前时间,并通过旋转不同长度的手来表示小时、分钟和秒。文章包含了完整的源代码,包括头文件、实现文件及主函数。

 源码来自“QT小神童”

clock.h

#ifndef CLOCK_H
#define CLOCK_H

#include <QtGui/QWidget>
#include <QPainter>
#include <QPoint>
#include <QTimer>
#include <QTime>
static QPoint sec[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 hour[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 // CLOCK_H

 

 


 

clock.cpp

#include "clock.h"

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);
        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,-98,0,-88);
        }
}

 

 

main.c

#include <QtGui/QApplication>
#include "clock.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Clock w;
    w.show();

    return a.exec();
}

 

不好意思,作为AI语言模型,我无法切实操作软件开发。但我可以为您提供一些参考资料和建议,并尽可能地回答您的问题。针对您的问题,“用qt一个时钟的收获”,我认为您可能想问的是“用qt如何实现一个时钟”。当然,我不确定您在说什么时候了解了Qt,所以我将从基础开始回答您的问题。以下是一些指导步骤: 1.创建Qt项目 首先,您需要创建一个新的Qt项目。您可以使用Qt Creator这个开发工具来创建Qt项目。在Qt Creator中,选择“文件” >“新建文件或项目”,然后选择“应用程序” >“Qt Widgets应用程序”。 2.设计时钟界面 第二步,设计时钟的用户界面。时钟需要显示当前的时间并且需要一个按钮来启动/停止时钟。您可以使用Qt Designer工具创建并设计UI界面。在QT Creator中,单击“设计师”页面上的“设计UI”按钮。 3.实现时钟函数 第三步,实现时钟函数。在Qt中,您可以使用QTimer类来实现时钟功能。使用QTimer类的关键是在您的应用程序中创建一个计时器对象,然后将它连接到要执行的函数。在这个例子中,我们需要执行一个函数来获取并显示当前时间。您可以使用QDateTime类来获取当前时间或日期。当然您也可以使用其他库来获取时间。 4.连接时钟按钮 第四步,连接时钟按钮。在时钟程序中,我们需要一个按钮来启动/停止计时器。您可以在Qt Designer中将一个按钮拖动到UI界面并命名为“Start/Stop”。然后在Qt Creator的Edit Signal/ Slot功能中,建立一个连接,这个连接把按钮的clicked(单击)信号连接到时钟功能函数的启动或停止,来实现计时器的启动/停止。 5.编译并运行应用程序 最后一步,编译并运行您的应用程序。在Qt Creator中,单击“构建”>“运行”,或使用快捷键“CTRL + R”。如果一切正常,您的应用程序将编译和启动。使用时钟按钮来启动/停止计时器,应用程序将显示当前时间。 希望这些步骤能帮助您了解如何用Qt实现一个简单的时钟,祝您好运!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值