锋哥原创的PyQt6视频教程:
QDateTimeEdit日期时间控件同时显示日期和时间,可以对日期时间进行编辑,选择以及显示。
QDateTimeEdit类的常用方法
方法 | 说明 |
---|---|
setTime() | 设置时间,默认为0:00:00 |
setCalendarPopup() | 弹出日历设置,默认False |
setMaximumTime() | 设置最大时间,默认为23:59:59 |
setMinimumTime() | 设置最小时间,默认为0:00:00 |
setTimeSpec() | 获取显示的时间标准,支持以下4种值。 LocalTime:本地时间; UTC:世界标准时间; OffsetFromUTC:与UTC等效的时间; TimeZone:时区 |
setDateTime() | 设置日期时间,默认为2000/1/1 0:00:00 |
setDate() | 设置日期,默认为2000/1/1 |
setMaximumDate() | 设置最大日期,默认为9999/12/31 |
setMinimumDate() | 设置最小日期,默认为1752/9/14 |
setDisplayFormat() | 设置日期、时间的显示样式。 日期样式(yyyy表示4位数年份,MM表示2位数月份,dd表示2位数日): yyyy/MM/dd、yyyy/M/d、yy/MM/dd、yy/M/d、yy/MM 和 Mm/dd 时间样式(HH表示2位数小时,mm表示2位数分钟,ss表示2位数秒钟): HH:mm:ss、HH:mm、mm:ss、H:m和 m:s |
date() | 获取显示的日期,返回值为QDate类型,如 QDate(2000,1,1) |
time() | 获取显示的时间,返回值为QTime类型,如QTime(0,0) |
dateTime() | 获取显示的日期时间,返回值为QDateTime类型,如 QDateTime(2000,1,1,0,0) |
UI生成参考代码:
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 300)
self.dateTimeEdit = QtWidgets.QDateTimeEdit(parent=Form)
self.dateTimeEdit.setGeometry(QtCore.QRect(100, 110, 194, 22))
self.dateTimeEdit.setDateTime(QtCore.QDateTime(QtCore.QDate(2023, 1, 1), QtCore.QTime(0, 0, 0)))
self.dateTimeEdit.setCalendarPopup(True)
self.dateTimeEdit.setObjectName("dateTimeEdit")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.dateTimeEdit.setDisplayFormat(_translate("Form", "yyyy-MM-dd HH:mm:ss"))
Main测试代码:
"""
python加载ui文件
作者 : 小锋老师
官网 : www.python222.com
"""
import sys
import time
from PyQt6.QtGui import QValidator, QIntValidator, QIcon
from PyQt6.QtWidgets import QApplication, QLabel, QLineEdit, QTextEdit, QComboBox, QDateTimeEdit
from PyQt6 import uic, QtGui, QtCore
if __name__ == '__main__':
app = QApplication(sys.argv)
ui = uic.loadUi("./QDateTimeEdit日期时间控件.ui")
myDateTimeEdit: QDateTimeEdit = ui.dateTimeEdit
myDateTimeEdit.setDate(QtCore.QDate(2023, 11, 28))
myDateTimeEdit.setTime(QtCore.QTime(11, 20, 18))
print(myDateTimeEdit.dateTime().toString("yyyy-MM-dd HH:mm:ss"))
print(myDateTimeEdit.date().toString("yyyy-MM-dd"))
print(myDateTimeEdit.time().toString("HH:mm:ss"))
ui.show()
sys.exit(app.exec())