当前位置: 首页 > news >正文

【嵌入式——QT】日期与定时器

日期

  • QTime:时间数据类型,仅表示时间,如 16:16:16;
  • QDate:日期数据类型,仅表示日期,如2024-1-22;
  • QDateTime:日期时间数据类型,表示日期和时间,如2024-1-22 19:03:03;
  • QTimeEdit:编辑和显示时间的组件;
  • QDateEdit:编辑和显示日期的组件;
  • QDateTimeEdit:编辑和显示日期时间的组件;
  • QCalendarWidget:一个用日历形式选择日期的组件;

定时器
需要引入的头文件 #include <QTimer>
QTimer:定时器,用来处理周期性事件的一种对象,类似于硬件定时器,例如设置一个定时器的定时周期为1000毫秒,那么每1000毫秒就会发射定时器的timeout()信号,在信号关联的槽函数里就可以做相应的处理。

日期显示格式符

  • d:天,不补零显示 1-31;
  • dd:天,补零显示 01-31;
  • M:月,不补零显示;
  • MM:月,补零显示;
  • yy:年,两位显示 00-99;
  • yyyy:年,四位显示 2024;
  • h:小时,不补零 0-23或1-12(如果显示AP/PM) ;
  • hh:小时,补零2位显示0-23或1-12(如果显示AP/PM);
  • H:小时,不补零 0-23(即使显示AP/PM);
  • HH:小时,补零 00-23(即使显示AP/PM);
  • m:分钟,不补零;
  • mm:分钟,补零;
  • z:毫秒 不补零 0-999;
  • zzz:毫秒 补零3位显示 000-999;
  • AP或A:使用Am/pm显示;
  • ap或a:使用am/pm显示;

图片示例
在这里插入图片描述
代码示例
DateTimeDialog.h

#ifndef DATETIMEDIALOG_H
#define DATETIMEDIALOG_H#include <QDialog>
#include <QTimer>
namespace Ui
{class DateTimeDialog;
}class DateTimeDialog : public QDialog
{Q_OBJECTpublic:explicit DateTimeDialog(QWidget* parent = nullptr);~DateTimeDialog();public slots:void on_pushButton_clicked();void on_pushButtonSetTime_clicked();void on_pushButtonSetDate_clicked();void on_pushButtonSetDateTime_clicked();void on_calendarWidget_selectionChanged();void timeOutMethod();private slots:void on_pushButtonStart_clicked();void on_pushButtonStop_clicked();private:Ui::DateTimeDialog* ui;QTimer* timer;
};#endif // DATETIMEDIALOG_H

DateTimeDialog.cpp

#include "DateTimeDialog.h"
#include "ui_DateTimeDialog.h"DateTimeDialog::DateTimeDialog(QWidget* parent): QDialog(parent), ui(new Ui::DateTimeDialog)
{ui->setupUi(this);timer = new QTimer(this);connect(timer, SIGNAL(timeout()), this, SLOT(timeOutMethod()));ui->pushButtonStop->setEnabled(false);ui->spinBox->setSuffix("ms");ui->spinBox->setMaximum(10000000);ui->spinBox->setMinimum(100);
}DateTimeDialog::~DateTimeDialog()
{delete ui;
}void DateTimeDialog::on_pushButton_clicked()
{//获取当前时间QDateTime curDateTime = QDateTime::currentDateTime();ui->timeEdit->setTime(curDateTime.time());ui->editTime->setText(curDateTime.toString("hh:mm:ss"));ui->dateEdit->setDate(curDateTime.date());ui->editDate->setText(curDateTime.toString("yyyy-MM-dd"));ui->dateTimeEdit->setDateTime(curDateTime);ui->editDateTime->setText(curDateTime.toString("yyyy-MM-dd hh:mm:ss"));
}void DateTimeDialog::on_pushButtonSetTime_clicked()
{QString str = ui->editTime->text();str = str.trimmed();QDateTime dateTime = QDateTime::fromString(str, "hh:mm:ss");ui->timeEdit->setTime(dateTime.time());
}void DateTimeDialog::on_pushButtonSetDate_clicked()
{QString str = ui->editDate->text();str = str.trimmed();QDateTime dateTime = QDateTime::fromString(str, "yyyy-MM-dd");ui->dateEdit->setDate(dateTime.date());
}void DateTimeDialog::on_pushButtonSetDateTime_clicked()
{QString str = ui->editDateTime->text();str = str.trimmed();QDateTime dateTime = QDateTime::fromString(str, "yyyy-MM-dd hh:mm:ss");ui->dateTimeEdit->setDateTime(dateTime);
}void DateTimeDialog::on_calendarWidget_selectionChanged()
{QDate dt = ui->calendarWidget->selectedDate();QString str = dt.toString("yyyy-MM-dd");ui->editCalendar->setText(str);
}void DateTimeDialog::timeOutMethod()
{QTime curTime = QTime::currentTime();ui->lcdNumberH->display(curTime.hour());ui->lcdNumberM->display(curTime.minute());ui->lcdNumberS->display(curTime.msec());
}void DateTimeDialog::on_pushButtonStart_clicked()
{timer->setInterval(ui->spinBox->value());timer->start();ui->pushButtonStop->setEnabled(true);ui->pushButtonStart->setEnabled(false);
}void DateTimeDialog::on_pushButtonStop_clicked()
{timer->stop();ui->pushButtonStop->setEnabled(false);ui->pushButtonStart->setEnabled(true);
}

相关文章:

【嵌入式——QT】日期与定时器

日期 QTime&#xff1a;时间数据类型&#xff0c;仅表示时间&#xff0c;如 16:16:16&#xff1b;QDate&#xff1a;日期数据类型&#xff0c;仅表示日期&#xff0c;如2024-1-22&#xff1b;QDateTime&#xff1a;日期时间数据类型&#xff0c;表示日期和时间&#xff0c;如2…...

如何决定使用HashMap还是TreeMap?

使用 HashMap 还是 TreeMap 取决于你的需求和对数据结构的理解。 HashMap&#xff1a; 快速插入和查找&#xff1a;HashMap 提供了常数时间&#xff08;O(1)&#xff09;的插入和查找操作&#xff0c;因此对于需要快速插入和查找的场景非常适用。无序性&#xff1a;HashMap 不保…...

平台工程与安全

平台工程不是为了取代DevOps&#xff0c;而是DevOps的进一步演进和发展。本文介绍了DevOps和平台工程&#xff0c;以及对于安全的意义。原文: Platform Engineering and Security: A Very Short Introduction 中国云南大理的日落 我是一名 DevOps 工程师&#xff0c;个人还是希…...

智能咖啡厅助手:人形机器人 +融合大模型,行为驱动的智能咖啡厅机器人(机器人大模型与具身智能挑战赛)

智能咖啡厅助手&#xff1a;人形机器人 融合大模型&#xff0c;行为驱动的智能咖啡厅机器人(机器人大模型与具身智能挑战赛) “机器人大模型与具身智能挑战赛”的参赛作品。的目标是结合前沿的大模型技术和具身智能技术&#xff0c;开发能在模拟的咖啡厅场景中承担服务员角色并…...

js处理IOS虚拟键盘弹出后输入框被遮住

​ JS IOS 前言 在项目开发的过程中&#xff0c;在IOS手机端系统下&#xff0c;当对输入框&#xff08;input/textarea&#xff09;进行focus操作时&#xff0c;键盘弹起遮住输入框。 问题描述 从页面底部focus输入框失败从页面中间focus输入框失败 原因 造成上述问题的&…...

脚手架工程使用ElementUI

在终端中执行以下指令 npm install --save element-ui 在终端中显示added 9 packages in 10s 说明安装完成 在工程的main.js中 导入并使用ElementUI: import ElementUI from element-ui import element-ui/lib/theme-chalk/index.css Vue.use(ElementUI) 可以在*.vue页面中…...

163邮箱SMTP端口号及服务器地址详细设置?

163邮箱SMTP端口号是什么&#xff1f;163邮件SMTP设置教程&#xff1f; 除了基本的邮箱账号和密码外&#xff0c;还需要了解SMTP服务器地址和端口号&#xff0c;以及相应的设置。这些设置对于确保邮件能够顺利发送至关重要。下面&#xff0c;蜂邮EDM将详细介绍163邮箱SMTP端口…...

【STM32】STM32学习笔记-独立看门狗和窗口看门狗(47)

00. 目录 文章目录 00. 目录01. WDG概述02. 独立看门狗相关API2.1 IWDG_WriteAccessCmd2.2 IWDG_SetPrescaler2.3 IWDG_SetReload2.4 IWDG_ReloadCounter2.5 IWDG_Enable2.6 IWDG_GetFlagStatus2.7 RCC_GetFlagStatus 03. 独立看门狗接线图04. 独立看门狗程序示例105. 独立看门…...

计算机网络——IPV4数字报

1. IPv4数据报的结构 本结构遵循的是RFC 791规范&#xff0c;介绍了一个IPv4数据包头部的不同字段。 1.1 IPv4头部 a. 版本&#xff08;Version&#xff09;&#xff1a;指明了IP协议的版本&#xff0c;IPv4表示为4。 b. 头部长度&#xff08;IHL, Internet Header Length&…...

java抽象方法和抽象类

1、抽象方法 如果父类的方法本身不需要实现任何功能&#xff0c;仅仅是为了定义方法签名&#xff0c;目的是让子类去覆盖它&#xff0c;那么&#xff0c;可以把父类的方法声明为抽象方法。 class Person { // 定义抽象方法public abstract void run(); } 把一个方法声明为a…...

echarts鼠标向右/向左绘制实现放大/还原

echarts toolbox 的datazoom提供了绘制放大的功能&#xff0c;但通过鼠标绘制只能进行放大 应需求放大与还原都通过鼠标行为实现&#xff0c;增加从右往左绘制时还原放大结果 demo 结果 重写datazoom的原型方法实现绘制事件的拦截 const comp myChart._model.getComponent(to…...

Go编译DLL与SO

1. 简介 将Go编译成DLL/SO供其他语言调用。 .DLL&#xff1a;文件是 Windows 操作系统的动态链接库文件。.SO 文件是 Unix、Linux 和其他类 Unix 系统的共享库文件。 2. Go编译DLL/SO 注意 export后面导出的方法名一定要大写。 package main/* #include <stdlib.h>…...

css浮动

标准流&#xff1a;也叫文档流&#xff0c;指的是标签在页面中默认的排布规则。 浮动&#xff1a;让块级元素水平排列&#xff08;float:left/right;&#xff09;。 特点&#xff1a;浮动后的盒子顶对齐&#xff1b; 浮动后的盒子具备行内块的特点&#xff1b; 浮动后的元素脱…...

小程序怎么开发?怎么开发自己的小程序

一、明确需求与定位 在开发小程序之前&#xff0c;需要明确需求. 首先&#xff0c;明确小程序的定位非常重要。我们需要确定小程序是为了提供便捷的购物体验还是特定领域的服务。明确定位可以帮助我们更好地设计和优化小程序的功能&#xff0c;以符合用户的期望和需求。 其次…...

Unity(第十八部)物理力学,碰撞,触发、关节和材质

1、重力 刚体组件 英文中文描述RigidBody刚体组件physics->rigidbody &#xff0c;刚体组件使一个物体有了质量&#xff0c;重力等。&#xff0c;use gravity 勾选后&#xff0c;物体才会受到重力&#xff0c;会自动下落&#xff0c;取消勾选就不会。&#xff0c;&#xf…...

内网搭建mysql8.0并搭建主从复制详细教程!!!

一、安装mysql 1.1 mysql下载链接&#xff1a; https://downloads.mysql.com/archives/community/ 1.2 解压包并创建相应的数据目录 tar -xvf mysql-8.2.0-linux-glibc2.28-x86_64.tar.xz -C /usr/local cd /usr/local/ mv mysql-8.2.0-linux-glibc2.28-x86_64/ mysql mkdir…...

MYSQL 解释器小记

解释器的结果通常通过上述表格展示&#xff1a; 1. select_type 表示查询的类型 simple: 表示简单的选择查询&#xff0c;没有子查询或连接操作 primary:表示主查询&#xff0c;通常是最外层的查询 subquery :表示子查询&#xff0c;在主查询中嵌套的查询 derived: 表示派…...

具身智能计算系统,机器人时代的 Android | 新程序员

【导读】具身智能作为一种新兴的研究视角和方法论&#xff0c;正在刷新我们对智能本质及其发展的理解&#xff1a;传统的 AI 模型往往将智能视为一种独立于实体存在的抽象能力&#xff0c;而具身智能则主张智能是实体与其环境持续互动的结果。 本文深度剖析了具身智能计算系统…...

win11开启IPV6并手动设置地址

win11开启IPV6并手动设置地址 ipv6手动设置 假设你想要配置的IPv6地址是2001:0db8:85a3:0000:0000:8a2e:0370:7334&#xff0c;子网前缀长度为64位&#xff0c;并且默认网关是2001:0db8:85a3::1。 手动配置IPv6地址的示例步骤&#xff08;Windows操作系统&#xff09;&#x…...

WPF中如何设置自定义控件

1.圆角按钮的设置&#xff1a; 众所周知在WPF中自带有提示信息&#xff0c;当我问创建Button时&#xff0c;点击空格出现如下可选设置 带有小扳手&#x1f527;图标为相应的属性&#xff0c;如果Button有CornerRadius&#xff08;角半径&#xff09;属性就能够直接设置Button实…...

一文讲透扩散模型采样器:DDPM、DDIM、Euler、Heun、DPM-Solver、UniPC、LCM 全面对比

下面我把范围先说清楚: 你问的“类似 Euler、Heun、DPM-Solver 这种定位的求解器”,我这里按扩散模型 / Flow Matching 推理阶段的通用采样器(scheduler / solver)来整理,而不把任务专用或模型专用的东西混进来,比如 RePaint、DDIM inverse、VQDiffusion、CogVideoX/Hel…...

TFT闪屏现象深度解析:从硬件到软件的全面解决方案

1. TFT闪屏现象的本质与常见表现 第一次遇到TFT屏幕闪烁时&#xff0c;我以为是显示器要报废了。画面像接触不良的老电视一样忽明忽暗&#xff0c;眼睛盯着看十分钟就发酸。后来才发现&#xff0c;这其实是液晶显示领域的典型"慢性病"——就像人会感冒发烧一样常见。…...

CVPR2024知识蒸馏前沿:10大创新方法与应用场景解析

1. 知识蒸馏技术演进与CVPR2024新趋势 知识蒸馏作为模型压缩领域的核心技术&#xff0c;近年来在CVPR会议上持续引发研究热潮。2024年的最新进展显示&#xff0c;这项技术正在从传统的师生架构向更复杂的多模态、对抗性训练范式演进。与早期仅关注分类任务不同&#xff0c;当前…...

【TCP/IP】IIS FTP服务器端口冲突与匿名登录配置实战

1. IIS FTP服务器端口冲突问题解析 最近在搭建FTP服务器做TCP/IP协议分析实验时&#xff0c;遇到了一个典型问题&#xff1a;IIS FTP服务无法正常启动&#xff0c;匿名登录总是失败。经过排查发现&#xff0c;原来是FileZilla Server偷偷占用了21端口。这种情况在实际工作中很常…...

揭秘多模态餐饮推荐系统落地难题:从BERT-Vision融合到实时推理延迟压降至89ms的实战路径

第一章&#xff1a;2026奇点智能技术大会&#xff1a;多模态餐饮推荐 2026奇点智能技术大会(https://ml-summit.org) 在2026奇点智能技术大会上&#xff0c;多模态餐饮推荐系统成为核心展示场景之一。该系统融合用户历史行为、实时图像&#xff08;如菜品照片&#xff09;、语…...

模拟增益与数字增益:曝光调整中的优先级策略与实战技巧

1. 模拟增益与数字增益的核心差异 第一次接触相机参数时&#xff0c;我也被这两个专业术语绕晕过。直到有次拍摄星空&#xff0c;发现ISO调到6400后画面全是彩色噪点&#xff0c;才真正理解它们的区别。简单来说&#xff0c;模拟增益就像在菜市场买菜时用放大镜看秤——在信号变…...

Mac NTFS读写终极方案:免费开源工具Nigate完整指南

Mac NTFS读写终极方案&#xff1a;免费开源工具Nigate完整指南 【免费下载链接】Free-NTFS-for-Mac Nigate: An open-source NTFS utility for Mac. It supports all Mac models (Intel and Apple Silicon), providing full read-write access, mounting, and management for N…...

为什么顶级画廊已开始拒收纯文本驱动生成作品?SITS2026深度报告:多模态真实性验证协议(MM-Auth v2.3)首次公开

第一章&#xff1a;SITS2026分享&#xff1a;多模态艺术创作 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026大会上&#xff0c;多模态艺术创作成为跨学科融合的焦点议题。研究人员与艺术家共同展示了如何将文本、图像、音频与3D几何信号协同建模&#xff0c;生成具…...

CISSP 域5知识点 身份认证与授权

&#x1f510; CISSP必修课⑤ | 身份认证与授权&#xff08;官方核心考点完全拆解&#xff09; &#x1f30a; CISSP Domain 5 身份认证与授权 | 官方核心定位 &#x1f4cd; 归属&#xff1a;Domain 5 身份与访问管理&#xff08;Identity and Access Management, IAM&#x…...

Debian 12 上配置 containerd 的优化实践与生产环境调优

1. 为什么选择 containerd 作为容器运行时&#xff1f; 在容器化技术领域&#xff0c;containerd 已经成为事实上的行业标准运行时。相比完整的 Docker 引擎&#xff0c;containerd 去掉了非必要的组件&#xff0c;只保留核心的容器生命周期管理功能。这种精简设计带来的直接好…...