关于Python的“PyQt5 – QCalendarWidget”的完整使用攻略如下:
QCalendarWidget 简介
QCalendarWidget 是一个日历控件,用于选择日期。日历控件支持多种视图模式,如月、周和年视图。
使用步骤
- 导入 PyQt5.QtWidgets 中的 QCalendarWidget 类。
from PyQt5.QtWidgets import QCalendarWidget
- 创建 QCalendarWidget 类的实例。
cal = QCalendarWidget()
- 显示日历控件。
cal.show()
QCalendarWidget 的常用方法
- setGridVisible(): 设置是否显示日期网格,默认是显示的。
cal.setGridVisible(False) # 隐藏网格
cal.setGridVisible(True) # 显示网格
- setFirstDayOfWeek(): 设置日历控件每周的第一天是哪一天。
cal.setFirstDayOfWeek(QtCore.Qt.Sunday) # 周日为第一天
cal.setFirstDayOfWeek(QtCore.Qt.Monday) # 周一为第一天
- setSelectedDate(): 设置选中的日期。
cal.setSelectedDate(QtCore.QDate.currentDate()) # 将当前日期设置为选中状态
- selectedDate(): 获取选中的日期。
date = cal.selectedDate().toString('yyyy-MM-dd')
print(date) # 输出选中的日期
QCalendarWidget 的常用信号
日历控件的常用信号有 selectionChanged(), activated(), currentPageChanged() 等。
- selectionChanged(): 日历控件中选中的日期改变时发出的信号。
cal.selectionChanged.connect(self.on_selection_changed) # 绑定信号与槽
def on_selection_changed(self):
date = cal.selectedDate().toString('yyyy-MM-dd')
print(date) # 输出选中的日期
- activated(): 日历控件中的日期被双击时发出的信号。
cal.activated.connect(self.on_activated) # 绑定信号与槽
def on_activated(self, date):
print(date) # 输出选中的日期
示例
示例一:显示日历控件并设置选中的日期
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QCalendarWidget, QVBoxLayout
from PyQt5.QtCore import QDate
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
cal = QCalendarWidget(self)
cal.setSelectedDate(QDate(2021, 8, 3)) # 设置选中日期
vbox = QVBoxLayout()
vbox.addWidget(cal)
self.setLayout(vbox)
self.setWindowTitle('QCalendarWidget 示例一')
self.setGeometry(300, 300, 350, 300)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
示例二:绑定日历控件的 selectionChanged 信号
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QCalendarWidget, QVBoxLayout
from PyQt5.QtCore import QDate
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
cal = QCalendarWidget(self)
cal.selectionChanged.connect(self.on_selection_changed) # 绑定信号与槽
vbox = QVBoxLayout()
vbox.addWidget(cal)
self.setLayout(vbox)
self.setWindowTitle('QCalendarWidget 示例二')
self.setGeometry(300, 300, 350, 300)
self.show()
def on_selection_changed(self):
date = cal.selectedDate().toString('yyyy-MM-dd')
print(date) # 输出选中的日期
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
以上就是 Python 的“PyQt5 – QCalendarWidget”完整的使用攻略。