📜  PyQt5 QCalendarWidget – 获取选定日期(1)

📅  最后修改于: 2023-12-03 15:33:52.298000             🧑  作者: Mango

PyQt5 QCalendarWidget – 获取选定日期

QCalendarWidget 是 PyQt5 中一个非常有用的小部件,可以在应用程序中方便地添加一个日历,用于选择日期。在本文中,我们将讨论如何从 QCalendarWidget 中获取选定的日期。

获取选定日期

QCalendarWidget 有一个名为 selectedDate() 的方法,返回用户当前选定的日期。

selected_date = self.calendar.selectedDate()

我们可以使用 toString() 方法将其转换为字符串格式,并且可以通过设置所需的格式来自定义字符串格式。例如,以下行将选定日期格式化为“dd/MM/yyyy”格式:

selected_date_string = selected_date.toString("dd/MM/yyyy")
完整代码

以下是一个完整的示例程序,演示如何使用 QCalendarWidget 获取选定的日期并显示。

from PyQt5.QtWidgets import QApplication, QCalendarWidget, QWidget, QVBoxLayout, QLabel


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

        self.init_ui()

    def init_ui(self):
        self.calendar = QCalendarWidget(self)
        self.calendar.clicked.connect(self.show_selected_date)

        self.selected_date_label = QLabel(self)

        layout = QVBoxLayout()
        layout.addWidget(self.calendar)
        layout.addWidget(self.selected_date_label)

        self.setLayout(layout)
        self.setWindowTitle("Calendar Widget")

    def show_selected_date(self):
        selected_date = self.calendar.selectedDate()
        selected_date_string = selected_date.toString("dd/MM/yyyy")
        self.selected_date_label.setText(f"Selected Date: {selected_date_string}")


if __name__ == "__main__":
    app = QApplication([])
    window = CalendarWidget()
    window.show()
    app.exec_()

该程序创建了一个 QCalendarWidget,并将其放置在一个垂直布局中,下方增加一个标签以显示所选日期。当用户单击日历中的日期时,show_selected_date() 方法将触发,该方法获取选定日期并在标签中显示它。