Qt的时间控件类QDateTimeEdit,QTimeEdit,QDateEdit,QCalendarWidget

Qt的时间控件类QDateTimeEdit,QTimeEdit,QDateEdit,QCalendarWidget


Qt中有专门用于日期、时间编辑和显示的界面组件,介绍如下。
QTimeEdit: 编辑和显示时间的组件。
QDateEdit:编辑和显示日期的组件。
QDateTimeEdit:编辑和显示日期时间的组件。
QCalendarWidget:一个用日历形式选择日期的组件。

QDateTimeEdit

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

属性

Qt的时间控件类QDateTimeEdit,QTimeEdit,QDateEdit,QCalendarWidget
Properties:

calendarPopup : bool
currentSection : Section
currentSectionIndex : int
date : QDate
dateTime : QDateTime
displayFormat : QString
displayedSections : const Sections
maximumDate : QDate
maximumDateTime : QDateTime
maximumTime : QTime
minimumDate : QDate
minimumDateTime : QDateTime
minimumTime : QTime
sectionCount : const int
time : QTime
timeSpec : Qt::TimeSpec

datetime:

日期时间。

date:

日期,设置datetime时会自动改变date,同样,设置date时,也会自动改变datetime里的日期。

time:

时间,设置datetime时会自动改变time,同样,设置time时,也会自动改变datetime里的时间。

maximumDateTime、minimumDateTime:

最大、最小日期时间。

maximumDate、minimumDate:

最大、最小日期。

maximumTime、minimumTime:

最大、最小时间。

currentSection:

当前输入光标所在的时间日期数据段,是枚举类型QDateTimeEdit::Section。QDateTimeEdit显示日期时间数据时分为多个段,单击编辑框右侧的上下按钮可修改当前段的值。如输入光标在YearSection段,就修改“年”的值。

currentSectionIndex:

用序号表示的输入光标所在的段。

calendarPopup:

是否允许弹出一个日历选择框。当取值为true时,右侧的输入按钮变成与QComboBox类似的下拉按钮,单击按钮时出现一个日历选择框,用于在日历上选择日期。对于QTimeEdit,此属性无效。

displayFormat:

显示格式,日期时间数据的显示格式,例如设置为“yyyy-MM-dd HH:mm:ss”,一个日期时间数据就显示为“2016-11-02 08:23:46”。

用于日期显示的格式符及其意义

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

时间日期转换为字符串

使用了QDateTime的toString()函数,分别用不同的格式显示时间、日期、日期时间。

//QString QDateTime::toString(const QString &format) const
ui->editTime->setText(curDateTime.toString("hh:mm:ss")); 
ui->editDate->setText(curDateTime.toString("yyyy-MM-dd")); 
ui->editDateTime->setText(curDateTime.toString("yyyy-MM-dd hh:mm:ss"));

字符串转换为日期时间

同样的,也可以将字符串转换为QTime、QDate或QDateTime类型,使用静态函数QDateTime:: fromString(),其函数原型为:

QDateTime QDateTime::fromString(const QString &string, const QString &format
datetime=QDateTime::fromString(str,"yyyy-MM-dd hh:mm:ss");

QTimeEdit

QDateEdit和QTimeEdit都从QDateTimeEdit继承而来,实现针对日期或时间的特定显示功能。

属性:time

Qt的时间控件类QDateTimeEdit,QTimeEdit,QDateEdit,QCalendarWidget

QDateEdit

QDateEdit和QTimeEdit都从QDateTimeEdit继承而来,实现针对日期或时间的特定显示功能。

属性:date

Qt的时间控件类QDateTimeEdit,QTimeEdit,QDateEdit,QCalendarWidget

QCalendarWidget日历组件

属性:

Qt的时间控件类QDateTimeEdit,QTimeEdit,QDateEdit,QCalendarWidget
Properties:

dateEditAcceptDelay : int
dateEditEnabled : bool
firstDayOfWeek : Qt::DayOfWeek
gridVisible : bool
horizontalHeaderFormat : HorizontalHeaderFormat
maximumDate : QDate
minimumDate : QDate
navigationBarVisible : bool
selectedDate : QDate
selectionMode : SelectionMode
verticalHeaderFormat : VerticalHeaderFormat

selectedDate : QDate

当前日历的日期。

maximumDate、minimumDate : QDate

最大日期和最小日期。

firstDayOfWeek : Qt::DayOfWeek

设置日期周的开始第一天是周几。

gridVisible : bool

是否有网格线。

selectionMode : SelectionMode

此属性保存用户可以在日历中进行的选择类型 当此属性设置为 SingleSelection 时,用户可以使用鼠标或键盘在允许的最小和最大日期范围内选择一个日期。当该属性设置为 NoSelection 时,用户将无法选择日期,但仍可以通过编程方式选择日期。请注意,该属性设置为 NoSelection 时选择的日期仍将是日历的选定日期。默认值为 SingleSelection。

verticalHeaderFormat : VerticalHeaderFormat

设置水平头的显示的格式。

horizontalHeaderFormat :HorizontalHeaderFormat

设置显示一年的第几周。

navigationBarVisible : bool

是否显示月份和年份。

dateEditAcceptDelay : int

dateEditEnabled : bool

上一篇:IO流学习之字节流(二)


下一篇:Qt常用代码总结