Qt -- 时钟

1. 本文参考其它网友的设计,并进行了改进. 本时钟采用键盘事件,程序运行时,按下键盘的[ESC]键即可关闭程序.

2. 源码如下:

Clock.pro

#-------------------------------------------------
#
# Project created by QtCreator 2016-12-29T10:50:10
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = Clock
TEMPLATE = app

RC_FILE += \
    ico.rc

SOURCES += main.cpp\
        clock.cpp

HEADERS  += clock.h

FORMS    += clock.ui


clock.h

#ifndef CLOCK_H
#define CLOCK_H

#include <QWidget>

namespace Ui {
class Clock;
}

class Clock : public QWidget
{
    Q_OBJECT
    
public:
    explicit Clock(QWidget *parent = 0);
    ~Clock();

protected:
    void paintEvent(QPaintEvent *);
    void keyPressEvent(QKeyEvent *);
    
private:
    Ui::Clock *ui;
    int clockTick;
};

#endif // CLOCK_H


clock.cpp

#include <QTimer>
#include <QDate>
#include <QPainter>
#include <QFont>
#include <QKeyEvent>
#include "clock.h"
#include "ui_clock.h"

Clock::Clock(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Clock)
{
    ui->setupUi(this);

    clockTick = 0;

    //-------------------------------------------------------------------------
    // 时钟定时器(信号和槽方式)
    //-------------------------------------------------------------------------
    QTimer *timer = new QTimer(this);       //声明一个定时器
    //update()会自动产生重绘消息, 调用paintEvent()
    connect(timer, SIGNAL(timeout()), this, SLOT(update()));
                                            //连接信号槽,定时器超时触发窗体更新
    timer->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值