从零开始组件日期时间Qt(日期时间字符串组件显示)

时间日期数据类型时间日期是经常遇到的数据类型,Qt中时间日期类型的类如下。
QTime:时间数据类型,仅表示时间,如15:23:13。
QDate:日期数据类型,仅表示日期,如2017-4-5。
QDateTime:日期时间数据类型,表示日期和时间,如2017-03-23 08:12:43。
时间日期转换为字符串使用QDateTime的toString()函数,分别用不同的格式显示时间、日期、日期时间。
toString()的函数原型是:QString QDateTime::toString(const QString &format) const它将日期时间数据按照format指定的格式转换为字符串。
format是一个字符串,包含一些特定的字符,表示日期或时间的各个部分,下图是用于日期时间显示的常用格式符。
在设置日期时间显示字符串格式时,还可以使用填字符,甚至使用汉字。
例如,日期显示格式可以设置为:toString ("yyyy年MM月dd日"),这样得到的字符串格式是“2023年03月15日”。
同样的,也可以将字符串转换为QTime、QDate或QDateTime类型,使用静态函数QDateTime::fromString(),其函数原型为:

从零开始组件日期时间Qt(日期时间字符串组件显示)

QDateTime QDateTime::fromString(const QString &string, const QString &format)其中,第1个参数string是日期时间字符串形式,第2个参数format是字符串表示的格式。
时间日期界面组件Qt中有专门用于日期、时间编辑和显示的界面组件,介绍如下。
QTimeEdit:编辑和显示时间的组件。
QDateEdit:编辑和显示日期的组件。
QDateTimeEdit:编辑和显示日期时间的组件。
QCalendarWidget:一个用日历形式选择日期的组件。
QDateEdit和QTimeEdit都从QDateTimeEdit继承而来,实现针对日期或时间的特定显示功 能。
实际上,QDateEdit和QTimeEdit的显示功能都可以通过QDateTimeEdit实现,只需设置好属性即可。
QDateTimeEdit类的主要属性的介绍如下。
示例在图中窗体左上方的“日期时间”中,使用QTimeEdit、QDateEdit、QDateTimeEdit组件作为时间、日期、日期时间编辑器;在其下方,放置一个QLineEdit组件用于字符串显示日期时间。
界面如下图。
1. 日期时间数据的获取与转换为字符串“读取当前日期时间”按钮的clicked()信号的槽函数代码如下:void Widget::on_btnGetTime_clicked(){ QDateTime curDateTime=QDateTime::currentDateTime(); ui->timeEdit->setTime(curDateTime.time()); ui->dateEdit->setDate(curDateTime.date()); ui->dateTimeEdit->setDateTime(curDateTime); ui->edtDateTime->setText (curDateTime.toString("yyyy-MM-dd hh:mm:ss"));}首先用QDateTime类的静态函数currentDateTime()获取当前日期时间,并赋值给变量curDateTime。
然后用curDateTime变量设置界面上3个日期、时间编辑器的时间或日期值,利用了 QDateTime的time()和date()分别提取时间和日期。
最后,将curDateTime表示的日期时间数据转换为字符串然后在LineEdit编辑框上显示。
2. 字符串转换为日期时间在程序运行时,手工修改“字符串显示”后面文本框里的日期时间字符串,单击“设置日期时间”按钮,可以将文本框里的字符串转换为QDateTime变量,并设置为组件的日期时间数据,代码如下:void Widget::on_btnSetTime_clicked(){ QString str=ui->edtDateTime->text(); str=str.trimmed(); if(!str.isEmpty()) { QDateTime datetime=QDateTime::fromString(str,"yyyy-MM-dd hh:mm:ss"); ui->timeEdit->setTime(datetime.time()); ui->dateEdit->setDate(datetime.date()); ui->dateTimeEdit->setDateTime(datetime); }}3. QCalendarWidget日历组件图中窗体右侧是一个QCalendarWidget组件,它以日历的形式显示日期,可以用于日期选择。
QCalendarWidget有一个信号selectionChanged(),在日历上选择的日期变化后会发射此信号,为此信号创建槽函数,编写代码如下:void Widget::on_calendarWidget_selectionChanged(){ QDate dt=ui->calendarWidget->selectedDate(); QString str=dt.toString("yyyy年M月d日"); ui->edtCalender->setText(str);}

联系我们

在线咨询:点击这里给我发消息