QCalendarWidget 该组件可以用来选中日期和查看日期。
下面的例子演示了显示日期和得到用户选中的日期信息,其中通过定义回调函数 show_data() 来得到用户选中的日期信息,该回调函数在用户选中了不同的日期时被触发。下面是完整的代码:
import sys
from PyQt5.QtWidgets import QMainWindow, QCalendarWidget, QApplication
from PyQt5.QtWidgets import QLabel
from PyQt5.QtCore import QDate
class CalendarExample(QMainWindow):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.calendar_obj1 = QCalendarWidget(self)
self.calendar_obj1.setGridVisible(True)
# (20, 20)是位置
# (200, 200)是大小
self.calendar_obj1.setGeometry(20, 20, 200, 200)
self.calendar_obj1.clicked[QDate].connect(self.show_data)
self.label_obj1 = QLabel(self)
date = self.calendar_obj1.selectedDate()
self.label_obj1.setText(date.toString())
self.label_obj1.setGeometry(130, 260, 200, 20)
self.setGeometry(300, 300, 300, 300)
self.setWindowTitle(u'演示QCalendarWidget的用法')
self.show()
def show_data(self, date):
self.label_obj1.setText(date.toString())
if __name__ == '__main__':
app = QApplication(sys.argv)
main_win = CalendarExample()
sys.exit(app.exec_())
运行该程序,可以看到图 1 所示的窗口。
这时显示的是当前的日期,可以通过鼠标来选中其他日期,此时会发现下面静态标签的内容也会发生改变,内容是用户选中的日期信息,如图 2 所示。