下面是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()
方法设置日历的选定日期。