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

news2024/11/16 21:36:41

日期

  • 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_OBJECT

public:
    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);
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1476683.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity | 动态读取C#程序集实现热更新

目录 一、动态语言 二、创建C#dll 1.VS中创建一个C#语言的库工程 2.添加UnityEngine.dll的依赖 3.编写代码&#xff0c;生成dll 三、Unity使用dll 一、动态语言 计算机编程语言可以根据它们如何将源代码转换为可以执行的代码来分类为静态语言和动态语言。 静态语言&…

Centos7:自动化配置vim | suoders信任列表添加普通用户

Centos7&#xff1a;自动化配置vim | suoders信任列表添加普通用户 vim 配置原理sudoers系统可信任列表中添加普通用户自动化配置vim vim 配置原理 在目录/etc下有一个vimrc文件&#xff0c;该文件是系统中公共的vim配置文件&#xff0c;对所有用户都成立。  而在每个普通用户…

ABAP-CPI: Get CPI Monitoring Log (通过postman去获取CPI监控中心的日志)

参照文档: SAP Business Accelerator Hub Using Message Monitoring and Logging (sap.com) 进入到你的CPI监控中心: 获取到上面的 https://..hana.ondemand.com的地址,在它后面加上/api/v1 即https://....hana.ondemand.com/api/v1 然后就可以开始postman调用了,文章…

[设计模式Java实现附plantuml源码~行为型] 对象状态及其转换——状态模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

vue2 + axios + mock.js封装过程,包含mock.js获取数据时报404状态的解决记录,带图文,超详细!!!

vue axios mock.js 以下是封装的过程&#xff0c;记录一下 1、首先先了解什么是mock.js的用途及特点 官网地址&#xff1a;Mock.js (mockjs.com) 作用&#xff1a;生成随机数据&#xff0c;拦截 Ajax 请求 优势&#xff1a; 2、了解axios的原理及使用 官网地址&#xff1a…

Python把excel内容保存为图片(非统计图而是纯原表格数据)

一、引入 excel2img 库&#xff0c;没有的话使用 pip install excel2img进行安装 二、采用如下方法进行图片生成 excel文件名为&#xff1a;111.xlsx excel表格里面的sheet名称列表为 [Sheet1, Sheet2] 最终保存为以sheet名称.png的图片 支持跨表格合并项 import excel2i…

【大数据】Flink SQL 语法篇(八):集合、Order By、Limit、TopN

Flink SQL 语法篇&#xff08;八&#xff09;&#xff1a;集合、Order By、Limit、TopN 1.集合操作2.Order By、Limit 子句2.1 Order By 子句2.2 Limit 子句 3.TopN 子句 1.集合操作 集合操作支持 Batch / Streaming 任务。 UNION&#xff1a;将集合合并并且去重。UNION ALL&a…

MySql-多表设计-一对多-外键

目录 外键约束问题分析问题解决 实例通过SQL语句操作物理外键和逻辑外键 外键约束 表结构创建完毕后&#xff0c;我们看到两张表的数据分别为&#xff1a; 现在员工表中有9个员工都归属于2号部门&#xff0c;当删除了号部门后&#xff0c;数据变为&#xff1a; 2号部门被删除…

什么是电子邮件客户端?如何选择合适的邮箱客户端?

“从1到10分&#xff0c;你会如何评价我们的电子邮件服务&#xff1f;” 无论你的评分是多少&#xff0c;影响你评分的一个重要因素肯定是电子邮件客户端提供的功能。 电子邮件客户端应该具有基本而漂亮的高级功能&#xff0c;以使迁移过程更容易。此外&#xff0c;应该有一些…

leetcode — 动态规划 — 打家劫舍、完全平方数

1 打家劫舍 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定一个代表每个房…

Vue官网“食用指南”

把Vue官网当做一个工具来用&#xff0c;有问题&#xff0c;先来官网查一查。 官网中常用的板块 官网&#xff1a;https://cn.vuejs.org/上手后&#xff0c;最常用的模块是【快速上手】【API】。所以务必要知道这两个模块在哪里&#xff0c;怎么使用。![image.png](https://img…

VPX基于全国产飞腾FT-2000+/64核+复旦微FPGA的计算刀片

6U VPX计算板 产品简介 产品特点 飞腾计算平台&#xff0c;国产化率100% VPX-MPU6902是一款基于飞腾FT-2000/64核的计算刀片&#xff0c;主频2.2GHz&#xff0c;负责业务数据流的管控和调度。搭配自带独立显示芯片的飞腾X100芯片&#xff0c;可用于于各类终端及服务器类应用场…

R语言使用dietaryindex包计算NHANES数据多种健康饮食指数 (HEI等)(1)

健康饮食指数 (HEI) 是评估一组食物是否符合美国人膳食指南 (DGA) 的指标。Dietindex包提供用户友好的简化方法&#xff0c;将饮食摄入数据标准化为基于指数的饮食模式&#xff0c;从而能够评估流行病学和临床研究中对这些模式的遵守情况&#xff0c;从而促进精准营养。 该软件…

能在手机上运行,仅仅0.5B大小的小语言模型MobiLlama

模型介绍 该模型基于LLaMA-7B架构设计&#xff0c;旨在能够在边缘设备上高效运行&#xff0c;无需将数据发送到远程服务器或云端处理。如智能手机、平板电脑、智能手表等。MobiLlama模型虽然体积小、对资源的需求低&#xff0c;但仍能提供高精度的语言理解和生成能力。项目还提…

fastjson序列化MessageExt对象问题(1.2.78之前版本)

前言 无论是kafka&#xff0c;还是RocketMq&#xff0c;消费者方法参数中的MessageExt对象不能被 fastjson默认的方式序列化。 一、查看代码 Override public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs,ConsumeConcurrentlyContext context) {t…

C语言——深度剖析数据在内存中的存储——第2篇——(第25篇)

坚持就是胜利 文章目录 三、浮点型在内存中的存储1、一个例子2、浮点数存储规则1、IEEE 754对 有效数字M 和 指数E &#xff0c;还有一些特别规定。2、至于 指数E&#xff0c;情况比较复杂&#xff0c;首先&#xff0c;E 为 一个无符号整数(unsigned int)3、然而&#xff0c;指…

防御保护:防火墙内容安全

一、IAE&#xff08;Intelligent Awareness Engine&#xff09;引擎 二、深度检测技术(DFI和DPI&#xff09; 1.DPI – 深度包检测技术 DPI主要针对完整的数据包&#xff08;数据包分片&#xff0c;分段需要重组&#xff09;&#xff0c;之后对数据包的内容进行识别。&#x…

c# .net8 香橙派orangepi + hc-04蓝牙 实例

这些使用c# .net8开发&#xff0c;硬件 香橙派 orangepi 3lts和 hc-04蓝牙 使用场景&#xff1a;可以通过这个功能&#xff0c;手机连接orangepi进行wifi等参数配置 硬件&#xff1a; 1、带USB口的linux开发板orangepi 2、USB 转TTL 中转接蓝牙&#xff08;HC-04) 某宝上买…

openGauss学习笔记-230 openGauss性能调优-系统调优-配置并行查询功能

文章目录 openGauss学习笔记-230 openGauss性能调优-系统调优-配置并行查询功能230.1 适用场景与限制230.2 资源对SMP性能的影响230.3 其他因素对SMP性能的影响230.4 配置步骤 openGauss学习笔记-230 openGauss性能调优-系统调优-配置并行查询功能 openGauss的SMP并行技术是一…

双流机场到天府机场ADS-B数据导入MATLAB

MATLAB导入数据 导入的数据Excel部分截图&#xff1a; 一些处理 % 导入外部轨迹数据并转成标准形式 clear;clc; %% 导入&预处理 [NUM,TXT,RAW]xlsread(2021年10月31日CTU-TFU); time_cell RAW(3:end,1); %拉取时间数据&#xff08;cell&#xff09; time_char char(t…