📅  最后修改于: 2023-12-03 15:33:52.100000             🧑  作者: Mango
PyQt5 is a Python library that allows you to create cross-platform desktop applications. One of the widgets provided by PyQt5 is QCalendarWidget, which allows users to pick a date from a calendar.
In this tutorial, we will show how to update QCalendarWidget to make it more customizable and user-friendly.
QCalendarWidget provides three selection modes: SingleSelection, NoSelection, and ExtendedSelection. You can change the selection mode by calling setSelectionMode
method.
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QCalendarWidget
calendar = QCalendarWidget()
calendar.setSelectionMode(QCalendarWidget.ExtendedSelection)
You can change the default date displayed by QCalendarWidget by calling setSelectedDate
method.
from PyQt5.QtCore import QDate
from PyQt5.QtWidgets import QCalendarWidget
calendar = QCalendarWidget()
calendar.setSelectedDate(QDate.currentDate())
You can change the color of the calendar by modifying the stylesheet.
from PyQt5.QtWidgets import QApplication, QCalendarWidget
import sys
app = QApplication(sys.argv)
calendar = QCalendarWidget()
# set the stylesheet
calendar.setStyleSheet("QCalendarWidget {background-color: yellow}")
calendar.show()
sys.exit(app.exec_())
You can add event handling to QCalendarWidget to capture user input.
To get the selected date, you can connect the selectionChanged
signal to a custom function that retrieves the selected date using selectedDate
.
from PyQt5.QtWidgets import QApplication, QCalendarWidget
from PyQt5.QtCore import QDate
import sys
app = QApplication(sys.argv)
calendar = QCalendarWidget()
calendar.setSelectedDate(QDate.currentDate())
# define a custom function to retrieve the date
def get_date():
date = calendar.selectedDate()
print(date.toString())
# connect the signal to the custom function
calendar.selectionChanged.connect(get_date)
calendar.show()
sys.exit(app.exec_())
You can also handle mouse clicks on the calendar by connecting the clicked
signal to a custom function.
from PyQt5.QtWidgets import QApplication, QCalendarWidget
from PyQt5.QtCore import QDate
import sys
app = QApplication(sys.argv)
calendar = QCalendarWidget()
calendar.setSelectedDate(QDate.currentDate())
# define a custom function to handle the mouse click
def handle_click(date):
print(date.toString())
# connect the signal to the custom function
calendar.clicked.connect(handle_click)
calendar.show()
sys.exit(app.exec_())
QCalendarWidget is a useful widget provided by PyQt5 for selecting dates. By customizing it and adding event handling, you can make it more user-friendly and useful in a variety of applications.