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

news/2025/1/14 18:22:21/

一、显示在右下角

1、timer.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

#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

#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

#ifndef TIMER_H
#define TIMER_H#include <QMainWindow>
#include <QTimer>
#include <QMenuBar>namespace Ui {
class Timer;
}class Timer : public QMainWindow
{Q_OBJECTpublic:explicit Timer(QWidget *parent = nullptr);~Timer();private:Ui::Timer *ui;QTimer *timer;QMenuBar *menuBar;QAction *timeAction; // 添加这个成员变量
};#endif

3、运行效果


http://www.ppmy.cn/news/1562842.html

相关文章

Agentless:OpenAI 采用的非代理框架

不需要代理库来解决复杂的业务问题。Agentless 是OpenAI采用的非代理框架&#xff0c;用于在 o3 的 SWE Bench 上实现最高精度。SWE-bench 是 github的真实软件工程问题基准。Agentless 遵循简单的三阶段流程&#xff1a;本地化、修复和补丁验证&#xff1a; 1 ⃣生成存储库的…

对Python的深度学习

程序员对 Python 的深度学习&#xff0c;是在掌握 Python 基础语法和常见库的基础上&#xff0c;进行的更为深入和全面的探索。这不仅能提升程序员的编程能力&#xff0c;还能为其在不同领域的项目开发中提供强大助力。 深入掌握 Python 高级特性 元类编程&#xff1a;元类是…

Leetcode2275:按位与结果大于零的最长组合

题目描述&#xff1a; 对数组 nums 执行 按位与 相当于对数组 nums 中的所有整数执行 按位与 。 例如&#xff0c;对 nums [1, 5, 3] 来说&#xff0c;按位与等于 1 & 5 & 3 1 。同样&#xff0c;对 nums [7] 而言&#xff0c;按位与等于 7 。 给你一个正整数数组…

Nginx | 解决 Spring Boot 与 Nginx 中的 “413 Request Entity Too Large“ 错误

关注&#xff1a;CodingTechWork 引言 在 Web 开发中&#xff0c;413 Request Entity Too Large 是一种常见的 HTTP 错误&#xff0c;它指示客户端请求的实体&#xff08;例如文件或数据&#xff09;超出了服务器允许的最大大小。对于使用 Spring Boot 和 Nginx 的应用程序来说…

WPF ——开源MVVM模式框架简介

文章目录 Avalonia核心功能1.1 跨平台支持1.2 XAML 支持MVVM支持丰富的控件库样式和主题高性能渲染插件和扩展框架核心组件平台抽象层应用程序生命周期优势安装步骤Xamarin常用控件3.2 Xamarin.Essentials 常用 API3.3 Xamarin.Forms 数据绑定3.4 Xamarin.Forms 导航3.5 Xamari…

【微服务】面试 2、负载均衡

Ribbon 负载均衡流程 Spring Cloud 中负载均衡组件是 Ribbon&#xff0c;在使用 Feign 等组件发起远程调用时&#xff0c;底层会调用 Ribbon 进行负载均衡。以订单服务&#xff08;order service&#xff09;调用用户服务&#xff08;user service&#xff09;为例&#xff0c;…

SQL多表联查、自定义函数(字符串分割split)、xml格式输出

记录一个报表的统计&#xff0c;大概内容如下&#xff1a; 多表联查涉及的报表有&#xff1a;房间表、买家表、合同表、交易表、费用表、修改记录表 注意&#xff1a;本项目数据库使用的是sqlserver&#xff08;mssql&#xff09;&#xff0c;非mysql。 难点1:业主信息&#…

用户界面的UML建模13

&#x100084; Concrete Presentation Model 包中所包含的是&#xff0c;在Environment 包中与表示层框架模式中的《apm》类相对应的那些类。 8 结论 本文使用了一个图书馆系统的案例&#xff0c;来论述了关于用户界面的建模。通过使用统一建模语言来对应用系统进行建模&…