PyQt5 QCalendarWidget 设置选定日期

  • Post category:Python

下面是PyQt5 QCalendarWidget设置选定日期的完整使用攻略,包含两个示例说明。

Pyqt5 QCalendarWidget设置选定日期完整攻略

一、QCalendarWidget简介

QCalendarWidget是PyQt5中的一个日历控件,用于选择日期。

二、设置选定日期

我们可以使用setSelectedDate()方法设置选定日期。此方法接收单个参数,即QDate对象,用于设置日历中当前选定的日期。以下是示例代码:

from PyQt5.QtCore import QDate
from PyQt5.QtWidgets import QApplication, QWidget, QCalendarWidget


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

    def initUI(self):
        self.setGeometry(300, 300, 350, 300)
        self.setWindowTitle('QCalendarWidget设置选定日期')

        cal = QCalendarWidget(self)
        cal.setGridVisible(True)
        cal.move(20, 20)
        cal.clicked[QDate].connect(self.showDate)
        cal.setSelectedDate(QDate(2021, 7, 9))
        self.show()

    def showDate(self, date):
        print(date.toString())


if __name__ == '__main__':
    app = QApplication([])
    ex = Example()
    app.exec_()

这里我们使用QDate()方法创建了一个QDate对象,并传递给setSelectedDate()方法。

三、示例说明

示例1:设置当前日期

下面的示例代码创建了一个日历控件,并将当前日期设置为选定日期:

import sys
from PyQt5.QtCore import QDate
from PyQt5.QtWidgets import QApplication, QWidget, QCalendarWidget


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

    def initUI(self):
        self.setGeometry(300, 300, 350, 300)
        self.setWindowTitle('设置当前日期')

        cal = QCalendarWidget(self)
        cal.setGridVisible(True)
        cal.move(20, 20)
        cal.clicked[QDate].connect(self.showDate)
        cal.setSelectedDate(QDate.currentDate())
        self.show()

    def showDate(self, date):
        print(date.toString())


if __name__ == '__main__':
    app = QApplication([])
    ex = Example()
    sys.exit(app.exec_())

示例2:通过按钮设置选定日期

下面的示例代码创建了一个日历控件和一个按钮,当按钮被点击时,控件的选定日期会被设置为指定日期:

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


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

    def initUI(self):
        self.setGeometry(300, 300, 350, 300)
        self.setWindowTitle('通过按钮设置选定日期')

        cal = QCalendarWidget(self)
        cal.setGridVisible(True)
        cal.move(20, 20)
        cal.clicked[QDate].connect(self.showDate)

        btn = QPushButton('设置日期', self)
        btn.move(20, 250)
        btn.clicked.connect(lambda: cal.setSelectedDate(QDate(2021, 7, 10)))

        vbox = QVBoxLayout()
        vbox.addWidget(cal)
        self.setLayout(vbox)

        self.show()

    def showDate(self, date):
        print(date.toString())


if __name__ == '__main__':
    app = QApplication([])
    ex = Example()
    sys.exit(app.exec_())

在这个示例中,我们首先创建了一个按钮,添加到QWidget中。当按钮被点击时,使用setSelectedDate()方法设置日历的选定日期。