常用界面设计组件 —— 时间日期与定时器

本文详细介绍了Qt库中时间日期类(如QTime,QDate,QDateTime)的使用,展示了如何操作日期时间组件(如QDateTimeEdit,QDateEdit,QTimeEdit,QCalendarWidget),以及定时器(QTimer)的使用方法,包括日期时间与字符串的转换和定时器的设置与信号处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.7 时间日期与定时器

2.7.1 时间日期相关的类

时间日期是经常遇到的数据类型,Qt中时间日期类型的 类如下:

  • QTime ,时间数据类型, 仅表示时间, 如 18:08:08。
  • QDate, 日期数据类型, 仅表示日期, 如2023-7- 21。
  • QDateTime ,日期时间数据类型,表示日期和时 间, 如2023-07-21 18:08:08。

QT中有专门用于日期、时间编辑和显示的界面组件,如 下:

  • QTimeEdit, 编辑显示时间的组件。
  • QDateEdit, 编辑和显示日期的组件。
  • QDateTimeEdit, 编辑和显示日期时间的组件。
  • QCalendarWidget, 一个用日历形式选择日期日期的 组件。

定时器是用来处理周期性事件的一种对象,类似于硬件 定时器。例如设置一个定时器的定时周期为1000毫秒, 那么每1000毫秒就会发射定时器的timeout()信号,在 信号关联的槽函数里就可以做相应的处理。Qt中的定时 器类为QTimer,它直接从QObject类继承而来,不是界面 组件类。

2.7.2 日期时间数据与字符串之间的 转换

设计如下图所示对话框

在这里插入图片描述

QDateEdit和QTimeEdit都从QDateTimeEdit继承而 来,实现针对日期或时间的特定显示功能。实际上 QDateEdit和QTimeEdit的显示功能都可以通过 QDateTimeEdit实现,只需要设置好属性即可。

在这里插入图片描述

时间日期转字符串的函数:

QString QDateTime::toString(const QString &format) const

设置“读取当前日期时间”按钮对应的槽函数

#include "widget.h"
#include "ui_widget.h"
#include <QDateTime>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
   
    // 初始化界面
    ui->setupUi(this);
}

Widget::~Widget()
{
   
    // 释放ui指针
    delete ui;
}

void Widget::on_pushButton_set_data_time_2_clicked()
{
   
    // 获取当前日期时间
    QDateTime curDateTime = QDateTime::currentDateTime();

    // 设置时间编辑框的时间为当前时间
    ui->timeEdit->setTime(curDateTime.time());
    // 将当前时间格式化为字符串,设置到文本编辑框中
    ui->lineEdit_time->setText(curDateTime.toString("hh:mm:ss"));

    // 设置日期编辑框的日期为当前日期
    ui->dateEdit->setDate(curDateTime.date());
    // 将当前日期格式化为字符串,设置到文本编辑框中
    ui->lineEdit_data->setText(curDateTime.toString("yyyy-MM-dd"));

    // 设置日期时间编辑框的日期和时间为当前日期时间
    ui->dateTimeEdit->setDateTime(curDateTime);
    // 将当前日期时间格式化为字符串,设置到文本编辑框中
    ui->lineEdit_data_time->setText(curDateTime.toString("yyyy-MM-dd hh:mm:ss"))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值