PyQt5 QDateEdit – 设置用户可以输入的日期范围

  • Post category:Python

PyQt5是Python中最流行的GUI开发框架之一,其中QDateEdit是一种常用的日期输入控件。在使用PyQt5中的QDateEdit时,有时需要限制用户可以输入的日期范围,本篇攻略将详细介绍如何设置QDateEdit的可输入日期范围。

设置日期范围

使用QDateEdit的setMinimumDate()和setMaximumDate()方法可以设置可输入日期范围。

示例1:设置日期最小值

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

app = QApplication([])
window = QWidget()

dateedit = QDateEdit()
dateedit.setDisplayFormat("yyyy.MM.dd")
dateedit.setMinimumDate(QDate(2020, 1, 1))

layout = QVBoxLayout()
layout.addWidget(dateedit)

window.setLayout(layout)
window.show()
app.exec_()

在代码中使用了setMinimumDate方法,将dateedit的最小日期设置为2020年1月1日。用户无法选择更早的日期。

示例2:设置日期最大值

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

app = QApplication([])
window = QWidget()

dateedit = QDateEdit()
dateedit.setDisplayFormat("yyyy.MM.dd")
dateedit.setMaximumDate(QDate(2022, 12, 31))

layout = QVBoxLayout()
layout.addWidget(dateedit)

window.setLayout(layout)
window.show()
app.exec_()

在代码中使用了setMaximumDate方法,将dateedit的最大日期设置为2022年12月31日。用户无法选择更晚的日期。

通过这两个例子,您可以看到如何使用setMinimumDate()和setMaximumDate()方法限制输入日期的范围。这个功能可以方便地实现日期选择控件。需要注意的是,如果使用了setMaximumDate()方法,最小日期会被调整为January 1st, 1752,如果使用了setMinimumDate()方法,最大日期会被调整为December 31st, 7999。