Qt的时间控件类QDateTimeEdit,QTimeEdit,QDateEdit,QCalendarWidget
- QDateTimeEdit
- QTimeEdit
- QDateEdit
- QCalendarWidget日历组件
- 属性:
- selectedDate : QDate
- maximumDate、minimumDate : QDate
- firstDayOfWeek : Qt::DayOfWeek
- gridVisible : bool
- selectionMode : SelectionMode
- verticalHeaderFormat : VerticalHeaderFormat
- horizontalHeaderFormat :HorizontalHeaderFormat
- navigationBarVisible : bool
- dateEditAcceptDelay : int
- dateEditEnabled : bool
Qt中有专门用于日期、时间编辑和显示的界面组件,介绍如下。
QTimeEdit: 编辑和显示时间的组件。
QDateEdit:编辑和显示日期的组件。
QDateTimeEdit:编辑和显示日期时间的组件。
QCalendarWidget:一个用日历形式选择日期的组件。
QDateTimeEdit
QDateEdit和QTimeEdit都从QDateTimeEdit继承而来,实现针对日期或时间的特定显示功能。实际上,QDateEdit和QTimeEdit的显示功能都可以通过QDateTimeEdit实现,只需设置好属性即可。
属性
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
QDateEdit
QDateEdit和QTimeEdit都从QDateTimeEdit继承而来,实现针对日期或时间的特定显示功能。
属性:date
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
是否显示月份和年份。