下面我们实现日期时间框的添加,表示日期时间的文本框可以使用QtWidgets控件下的 QDateEdit() , QTimeEdit() , QDateTime() 三个方法实现。
1,使用QDateEdit() 我们可以得到一个只显示日期的文本框,在文本框中我们可以手动输入日期,也可以单击右侧的上、下按钮设置日期。不定义默认值的话,日期文边框的例的默认值为2000-01-01
#创建日期文本框
self.date =QtWidgets.QDateEdit(w)#调整日期文本框的位置大小
self.date.setGeometry(QtCore.QRect(150,30,160,30))
#设置日期显示的格式
self.date.setDisplayFormat("yyyy-MM-dd")
效果图如下
另外,我们修改显示的默认值为当前日期,添加以下代码
now_day = time.strftime("%Y-%m-%d",time.localtime())
self.date.setDate(QtCore.QDate.fromString(now_day,'yyyy-MM-dd'))
效果图如下
我们还可以使用日历插件获取日期,只需要将日期框的 calendarPopup 属性值为True 即可,代码代码如下
self.date.setCalendarPopup(True)
效果图如下
2,QTimeEdit() 可以创建一个时间的文本框,代码如下
self.label1 =QtWidgets.QLabel(w)
self.label1.setGeometry(QtCore.QRect(100, 60, 120, 45))
self.label1.setFont(QtGui.QFont("Roman times",14))
self.label1.setText("时间:")#创建一个时间框
self.time =QtWidgets.QTimeEdit(w)
self.time.setGeometry(QtCore.QRect(150,65,160,30))
self.time.setDisplayFormat("hh:mm:ss")#获取并定义当前时间
now_time = time.strftime("%H:%M:%S",time.localtime())
self.time.setTime(QtCore.QTime.fromString(now_time,'hh:mm:ss'))
效果图如下
3,上边的设置日期和时间是分开的,操作起来会比较繁琐,这时我们就可以使用 QDateTimeEdit() 方法了
self.label1 =QtWidgets.QLabel(w)
self.label1.setGeometry(QtCore.QRect(60, 60, 120, 45))
self.label1.setFont(QtGui.QFont("Roman times",14))
self.label1.setText("日期时间:")
self.time=QtWidgets.QDateTimeEdit(w)
self.time.setGeometry(QtCore.QRect(150,65,160,30))
self.time.setDisplayFormat("yyyy-MM-dd hh:mm:ss")#设置使用日历控件
self.time.setCalendarPopup(True)#获取并定义当前时间
now_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
self.time.setDateTime(QtCore.QDateTime.fromString(now_time,'yyyy-MM-dd hh:mm:ss'))
效果图如下