PyQt5日期时间控件QDateTimeEdit的使用说明
QDateTimeEdit
是一种输入日期和时间值的用户界面控件。同时允许用户以可视化的方式编辑日期和时间值,而不需要手动在输入框中输入数据。
初始化QDateTimeEdit控件
from PyQt5.QtWidgets import QApplication, QDateTimeEdit, QWidget, QVBoxLayout
import sys
app = QApplication(sys.argv)
w = QWidget()
layout = QVBoxLayout()
qde = QDateTimeEdit(w)
qde.setDateTime(QtCore.QDateTime.currentDateTime())
qde.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(2000, 1, 1)))
qde.setMaximumDateTime(QtCore.QDateTime(QtCore.QDate(2100, 12, 31)))
qde.setDisplayFormat('yyyy-MM-dd HH:mm:ss')
在上述的代码中,我们初始化了一个QDateTimeEdit
控件,并将其所在的 QWidget 对象和布局管理器 layout 相关联。我们还设置了最小和最大日期时间值,以及日期时间值的显示格式。
获取日期时间值
在需要获取日期时间值的位置,可以使用以下代码:
date_time = qde.dateTime().toString('yyyy-MM-dd HH:mm:ss')
dateTime()
方法可以获取到QDateTimeEdit
控件中当前选定的日期和时间。toString()
方法可以将日期时间值以格式化的字符串的形式返回。
例子1:在窗口中使用QDateTimeEdit控件
from PyQt5.QtWidgets import QApplication, QDateTimeEdit, QWidget, QVBoxLayout
import sys
app = QApplication(sys.argv)
w = QWidget()
layout = QVBoxLayout()
qde = QDateTimeEdit(w)
qde.setDateTime(QtCore.QDateTime.currentDateTime())
qde.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(2000, 1, 1)))
qde.setMaximumDateTime(QtCore.QDateTime(QtCore.QDate(2100, 12, 31)))
qde.setDisplayFormat('yyyy-MM-dd HH:mm:ss')
layout.addWidget(qde)
w.setLayout(layout)
w.show()
sys.exit(app.exec_())
运行上面的代码,可以在屏幕上看到一个包含QDateTimeEdit
控件的窗口,可以通过控件选择日期和时间,并将其以格式化字符串的形式输出。
例子2:在表格中使用QDateTimeEdit控件
from PyQt5.QtWidgets import QApplication, QMainWindow, QDateTimeEdit, QTableWidget, QTableWidgetItem
from PyQt5 import QtCore, QtGui
import sys
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.setWindowTitle('QDateTimeEdit demo')
self.setGeometry(200, 200, 400, 400)
self.table_widget = QTableWidget(self)
self.table_widget.setGeometry(QtCore.QRect(50, 50, 300, 300))
self.table_widget.setColumnCount(1)
self.table_widget.setHorizontalHeaderLabels(['Date and Time'])
self.row_count = self.table_widget.rowCount()
qde = QDateTimeEdit(self)
qde.setDateTime(QtCore.QDateTime.currentDateTime())
qde.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(2000, 1, 1)))
qde.setMaximumDateTime(QtCore.QDateTime(QtCore.QDate(2100, 12, 31)))
qde.setDisplayFormat('yyyy-MM-dd HH:mm:ss')
self.table_widget.setRowCount(self.row_count+1)
self.table_widget.setCellWidget(self.row_count, 0, qde)
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
上面的代码演示了如何在表格中使用QDateTimeEdit
控件。在这个例子中,我们创建了一个具有一行的表格,并在其中添加了一个包含QDateTimeEdit
控件的单元格。可以通过 控件选择日期和时间,并将其添加到表格中。
以上就是QDateTimeEdit
控件的使用方式和示例。