PyQt5 QCalendarWidget 移除掩码

  • Post category:Python

当我们使用 QCalendarWidget(PyQt5中的日历部件)时,通常会看到日期被显示为 “yyyy-MM-dd” 的形式,这就是所谓的掩码。如果我们想要在显示日期时去除掩码,可以通过修改 dateEdit 对象的日期格式来实现。

以下是修改日期格式的示例代码:

from PyQt5.QtWidgets import QApplication, QWidget, QGridLayout, QDateEdit, QLabel
from PyQt5.QtCore import QDate, Qt

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

date_edit = QDateEdit(QDate.currentDate())
date_edit.setDisplayFormat("MM/dd/yyyy")  # 修改日期格式
date_edit.setCalendarPopup(True)
layout.addWidget(QLabel("Date:"), 0, 0)
layout.addWidget(date_edit, 0, 1)

window.show()
app.exec_()

这个示例创建了一个 QDateEdit 对象,并将其日期格式设置为 “MM/dd/yyyy”(即不显示掩码)。执行程序后,我们将看到一个不带掩码的日期编辑器。

下面是另一个示例,它使用 QCalendarWidget 对象来显示日历,并将选定的日期显示为不带掩码的格式。

from PyQt5.QtWidgets import QApplication, QWidget, QGridLayout, QCalendarWidget, QLabel
from PyQt5.QtCore import QDate, Qt

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

calendar = QCalendarWidget()
calendar.clicked[QDate].connect(lambda date: layout.itemAt(2).widget().setText(
    date.toString("MM/dd/yyyy")))  # 修改日期格式并显示

layout.addWidget(QLabel("Select date:"), 0, 0)
layout.addWidget(calendar, 1, 0)
layout.addWidget(QLabel("Selected date:"), 2, 0)
layout.addWidget(QLabel(""), 2, 1)

window.show()
app.exec_()

这个示例创建了一个 QCalendarWidget 对象,并在日历上选择日期时将其显示为不带掩码的格式。当我们选定一个日期时,程序将更新第三个标签的文本以显示所选日期的新格式。

以上是两个示例,展示了如何使用 PyQt5 中的 QCalendarWidget 移除掩码。需要根据实际需求来选择最适合的方式实现。