下面我们实现日期时间框的添加,表示日期时间的文本框可以使用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'))
效果图如下