![5aa57fb014ab6ce2eb65230448156e40.png](https://i-blog.csdnimg.cn/blog_migrate/944dcfb20d8897c41eb0de3c550e33db.png)
1、QCalendar
日历控件
QCalendar
是一个日历控件,它提供了一个基于月份的视图,允许用户通过鼠标或键盘选择日期,默认选中的是今日的日期。也可以对日期的范围进行规定
![3c0100dcf0839a6ae2ff40851b2e7cf3.png](https://i-blog.csdnimg.cn/blog_migrate/6fca891716f90a08cef42b1c1c4cf8c5.jpeg)
QCalendarWidget
类属性
selectedDate
返回当前选定的日期minimumDate
可选择的最小日期maximumDate
可选择的最大日期firstDayOfWeek
设置星期的第一天,默认是星期天
Monday
星期一Tudesday
星期二Wednesday
星期三Thursday
星期四Friday
星期五Saturday
星期六Sunday
星期日
gridVisible
是否显示网格selectionMode
是否可以选中日期
NoSelection
不可选SingleSelection
可选
horizontalHeaderFormat
设置星期显示格式
NoHorizontalHeader 不显示星期
SingleLetterDayNames 显示"周"
ShortDayNames 显示"周一"
LongDayNames 显示"星期一"
verticalHeaderFormat
设置左侧是否显示第几周
NoVerticalHeader
不显示ISOWeekNumbers
显示
navigationBarVisible
设置是否显示年月dateEditEnabled
设置是否可以编辑日期dateEditAcceptDelay
编辑日期时延迟时间,单位是毫秒
QCalendar
信号
![f0df4ef4f47b99d523323f1c4a95a482.png](https://i-blog.csdnimg.cn/blog_migrate/277a60b02db1cb92ab07351c1512d1d0.jpeg)
每种信号触发条件:
activated(QDate)
双击时发出的信号,并传递出日期clicked(QDate)
单击时发出的信号,并传递出日期currentPageChanged(int,int)
筛选年月时发出的信号(年,月)selectionChanged()
使用鼠标或键盘选择日期时发出信号,但不传递日期,可配合selectedDate
属性返回当前选定的日期
2、QDateTimeEdit日期时间文本框
QDateTimeEdit
是一个允许用户编辑日期时间的控件,可以使用键盘上的上下键头按钮来增加或减少日期的时间值
![a83991010d0fe53572f74a0d0d0be52a.png](https://i-blog.csdnimg.cn/blog_migrate/30cc66465e295e3a6a84c2d508c6be45.jpeg)
QAbstractSpinBox
类属性:部分在属性在QDateTimeEdit
控件上没有效果
wrapping
设置是否循环,从最大值增加到最小值,frame
设置边框alignment
文本对齐方式
AlignLeft
左对齐AlignRight
右对齐AlignCenter
水平居中对齐AlignJustify
水平方向调整间距两端对齐AlignTop
垂直上对齐AlignBottom
垂直方下对齐AlignVCenter
垂直方向居中对齐
readOnly
只读属性buttonSymbols
按钮样式
UpDownArrows
上下箭头PlusMinus
+和 - 符号NoButtons
不显示按钮
specialValueText
特殊值文本accelerated
长按是否加速corretionMode
编辑模式
CorrectToPreviousValue
恢复到最后一个有效值CorrectNearestValue
恢复到最接近的有效值
keyboardTracking
是否为启用键盘跟踪。showGroupSeparator
是否启用千位分隔符
QDateTimeEdit
类属性
dateTime
编辑的日期时间date
编辑的日期time
编辑的时间maximumDateTime
最大日期时间minimumDateTime
最小日期时间maximumDate
最大日期minimumDate
最小日期maximumTime
最大时间mimimumTime
最小时间currentSection
当前部分
NoSection
没有AmPmSection
上午和下午MSecSection
毫秒SecondSection
秒MinuteSection
分HourSection
时DaySection
天MonthSection
月YearSection
年TimeSections_Mask
时间部分
displayFormat
显示格式calendarPopup
是否显示日历控件currentSectionIndex
当前部分索引timeSpec
时间规范
LocalTime
当前计算机时间UTC
世界标准时间offsetFromUTC
标准时间偏移TimeZone
时区
QDateTimeEdit
信号
![602424c70b5a40b528802114b9f5819c.png](https://i-blog.csdnimg.cn/blog_migrate/aa8631ad70480f9db0d89539a0d79289.jpeg)
每种信号触发条件:
dateChanged(QDate)
当日期改变时发出信号,并传递出日期dateTimeChanged(QDateTime)
当日期时间改变时发出信号,并传递出日期时间editingFinished()
结束编辑时发出的信号(回车,Tab,鼠标都可触发),不传递数据timeChanged(QTime)
当时间改变时发出信号,并传递出时间
3、QDateEdit
日期文本框,QTimeEdit
时间文本框
两者都继承自QDateTimeEdit
类,属性几乎相同,请参考上文
信号:
QDateEdit
多了userDateChanged(QDate)
,和dateChanged(QDate)
类似QTimeEdit
多了userTimeChanged(Time)
,和timeChanged(QTime)
类似
最后需要注意的一点:
- 文本框的日期时间格式,会根据本地电脑的格式显示
- 在获取日期时间文本内容时,使用
dateTime()
,date()
,time()
属性加toString
方法,转换格式,不要直接使用text()。
self.dateEdit.date().toString("yyyy-MM-dd")
- 用代码给控件设置日期时,要注意必须是
yyyy-MM-dd
格式完整8位日期
self.dateEdit.setDate(QDate.fromString('2019-01-06',1))