PyQt5 日期时间控件QDateTimeEdit

  • Post category:Python

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控件的使用方式和示例。