PyQt5 QDateEdit – 设置可设置的最小时间

  • Post category:Python

要使用 PyQt5 中的 QDateEdit 控件来设置可设置的最小时间,需以下步骤:

1.导入 QDateEdit、QDate、QtGui、QtCore 模块

from PyQt5.QtWidgets import QDateEdit
from PyQt5.QtCore import QDate, Qt
from PyQt5.QtGui import QtGui

2.创建 QDateEdit 控件

date_edit = QDateEdit()

3.设置最小时间

针对 QDateEdit 控件,通过设置 setDateRange 函数可以设置可选择的最小时间,同时也可通过设置 minimumDate 来实现。

使用 setDateRange 函数设置最小时间的代码如下:

min_date = QDate(2021, 1, 1) 
date_edit.setDateRange(min_date, QDate.currentDate())

此代码中,QDate(2021, 1, 1) 创建了一个 QDate 对象来指定最小时间,QDate.currentDate() 返回当前日期。

使用 minimumDate 设置最小时间的代码如下:

min_date = QDate(2021, 1, 1)
date_edit.setMinimumDate(min_date)

此代码中,QDate(2021, 1, 1) 创建了一个 QDate 对象,然后将它设置为最小时间。

下面是两个完整的 Pyqt5 QDateEdit 设置可设置的最小时间的示例:

示例1:

from PyQt5.QtWidgets import QApplication, QDateEdit, QVBoxLayout, QWidget
from PyQt5.QtCore import QDate
import sys

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        vbox = QVBoxLayout(self)

        date_edit = QDateEdit()

        # 设置最小时间
        min_date = QDate(2021, 1, 1)
        date_edit.setMinimumDate(min_date)

        # 设置当前时间为日期编辑器中的值
        date_edit.setDate(QDate.currentDate())

        vbox.addWidget(date_edit)

        self.setLayout(vbox)
        self.setGeometry(100, 100, 200, 100)
        self.setWindowTitle('PyQt5 QDateEdit 设置最小时间示例')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

说明:上述示例代码创建了一个 QDateEdit 控件,并设置了最小时间为2021年1月1日,最后将它加入到 QVBoxLayout 中。

示例2:

from PyQt5.QtWidgets import QApplication, QDateEdit, QVBoxLayout, QWidget
from PyQt5.QtCore import QDate, Qt
from PyQt5.QtGui import QIcon
import sys


class MainWindow(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        vbox = QVBoxLayout(self)

        date_edit = QDateEdit()

        # 设置最小时间
        min_date = QDate(2021, 1, 1)
        date_edit.setDateRange(min_date, QDate.currentDate())

        # 设置日期格式
        date_edit.setDisplayFormat("yyyy-MM-dd")

        # 设置日期编辑器的值
        date_edit.setDate(QDate(2021, 5, 1))

        # 设置日期编辑器的最大宽度
        date_edit.setMaximumWidth(200)

        vbox.addWidget(date_edit)

        self.setLayout(vbox)
        self.setGeometry(100, 100, 200, 100)
        self.setWindowTitle('PyQt5 QDateEdit 设置最小时间示例')
        self.setWindowIcon(QIcon('example.png'))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

说明:上述示例代码创建了一个 QDateEdit 控件,并设置了最小时间为2021年1月1日,最后设置了日期格式为 “yyyy-MM-dd”,用于显示日期,然后将它加入到 QVBoxLayout 中。同时还设置了窗口图标。