基于QT和C++的实时日期和时间显示

一、显示在右下角

1、timer.cpp

cpp 复制代码
#include "timer.h"
#include "ui_timer.h"
#include <QStatusBar>
#include <QDateTime>
#include <QMenuBar>
Timer::Timer(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Timer)
{
    ui->setupUi(this);
    // 创建状态栏
    QStatusBar *statusBar = new QStatusBar(this);
    this->setStatusBar(statusBar);
    // 创建用于显示时间的标签
    timeLabel = new QLabel(this);
    statusBar->addPermanentWidget(timeLabel);
    // 创建计时器,每秒更新一次
    timer = new QTimer(this);
    connect(timer, &QTimer::timeout, this, &Timer::updateTime);
    timer->start(1000); // 设置每1000毫秒(1秒)触发一次
    // 初始化时间显示
    updateTime();
}
Timer::~Timer()
{
    delete ui;
}
void Timer::updateTime()
{
    timeLabel->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));
}

2、timer.h

cpp 复制代码
#ifndef TIMER_H
#define TIMER_H

#include <QMainWindow>
#include <QTimer>
#include <QLabel>


namespace Ui {
class Timer;
}
class Timer : public QMainWindow
{
    Q_OBJECT
public:
    explicit Timer(QWidget *parent = nullptr);
    ~Timer();
private slots:
    void updateTime();
private:
    Ui::Timer *ui;
    QTimer *timer;
    QLabel *timeLabel;
};
#endif

3、 演示效果

二、显示在左上角

1、timer.cpp

cpp 复制代码
#include "timer.h"
#include "ui_timer.h"
#include <QMenuBar>
#include <QDateTime>
#include <QTimer>

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

    // 创建菜单栏
    menuBar = new QMenuBar(this);
    setMenuBar(menuBar);

    // 创建一个动作来显示时间
    timeAction = new QAction(this);
    timeAction->setText("00:00:00");
    menuBar->addAction(timeAction);

    // 创建计时器,每秒更新一次
    timer = new QTimer(this);
    connect(timer, &QTimer::timeout, this, [this](){
        timeAction->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));
    });
    timer->start(1000); // 设置每1000毫秒(1秒)触发一次
}

Timer::~Timer()
{
    delete ui;
}

2、timer.h

cpp 复制代码
#ifndef TIMER_H
#define TIMER_H

#include <QMainWindow>
#include <QTimer>
#include <QMenuBar>

namespace Ui {
class Timer;
}

class Timer : public QMainWindow
{
    Q_OBJECT

public:
    explicit Timer(QWidget *parent = nullptr);
    ~Timer();

private:
    Ui::Timer *ui;
    QTimer *timer;
    QMenuBar *menuBar;
    QAction *timeAction; // 添加这个成员变量
};

#endif

3、运行效果

相关推荐
xmRao几秒前
Qt+FFmpeg 实现 PCM 音频转 AAC 编码
qt·ffmpeg·pcm
Trouvaille ~3 分钟前
【Linux】TCP Socket编程实战(一):API详解与单连接Echo Server
linux·运维·服务器·网络·c++·tcp/ip·socket
xmRao7 分钟前
Qt+FFmpeg 实现录音程序(pcm转wav)
qt·ffmpeg
喜欢喝果茶.12 分钟前
QOverload<参数列表>::of(&函数名)信号槽
开发语言·qt
坚果派·白晓明14 分钟前
在鸿蒙设备上快速验证由lycium工具快速交叉编译的C/C++三方库
c语言·c++·harmonyos·鸿蒙·编程语言·openharmony·三方库
小镇敲码人21 分钟前
深入剖析华为CANN框架下的Ops-CV仓库:从入门到实战指南
c++·python·华为·cann
wjhx1 小时前
QT中对蓝牙权限的申请,整理一下
java·数据库·qt
踏过山河,踏过海1 小时前
【qt-查看对应的依赖的一种方法】
qt·visual studio
张张努力变强1 小时前
C++ STL string 类:常用接口 + auto + 范围 for全攻略,字符串操作效率拉满
开发语言·数据结构·c++·算法·stl
小镇敲码人1 小时前
探索CANN框架中TBE仓库:张量加速引擎的优化之道
c++·华为·acl·cann·ops-nn