下面是Python的PyQt5 QCalendarWidget显示的完整使用攻略。
- 安装PyQt5
如果你还没有安装PyQt5,你需要先执行以下命令来安装它:
pip install PyQt5
- 导入模块
接下来,在Python中你需要导入必要的模块:
from PyQt5.QtWidgets import QApplication, QMainWindow, QCalendarWidget, QVBoxLayout, QWidget
from PyQt5.QtCore import QDate
- 创建Widget和Calendar
创建PyQt5应用程序并添加一个QWidget以及一个QVBoxLayout。然后创建一个QCalendarWidget并将它添加到QWidget上。
app = QApplication([])
window = QMainWindow()
widget = QWidget()
layout = QVBoxLayout()
widget.setLayout(layout)
calendar = QCalendarWidget()
layout.addWidget(calendar)
window.setCentralWidget(widget)
window.show()
- 查看日期
现在你已经创建好了一个空的QCalendarWidget,你可以设置当前显示的日期并查看用户选择的日期了:
date = QDate.currentDate()
calendar.setSelectedDate(date)
selected_date = calendar.selectedDate()
print(selected_date.toString("yyyy-MM-dd"))
- 示例1:在标签中显示选择日期
要将用户选择的日期显示在标签中,你可以创建一个标签(QLabel)并使用QCalendarWidget的selectionChanged信号来更新标签的文本。示例代码如下:
from PyQt5.QtWidgets import QApplication, QMainWindow, QCalendarWidget, QVBoxLayout, QWidget, QLabel
from PyQt5.QtCore import QDate, Qt
def update_label(date):
label.setText(date.toString(Qt.DefaultLocaleLongDate))
app = QApplication([])
window = QMainWindow()
widget = QWidget()
layout = QVBoxLayout()
widget.setLayout(layout)
calendar = QCalendarWidget()
layout.addWidget(calendar)
label = QLabel()
layout.addWidget(label)
calendar.selectionChanged.connect(lambda: update_label(calendar.selectedDate()))
app.setActiveWindow(window)
window.setCentralWidget(widget)
window.show()
app.exec_()
- 示例2:在窗口上打印当前日期
在下面的示例中,我们将在主窗口中添加一个QPushButton和一个QLabel。QPushButton将被用来触发事件,该事件将在QLabel中显示当前日期。
from PyQt5.QtWidgets import QApplication, QMainWindow, QCalendarWidget, QVBoxLayout, QWidget, QPushButton, QLabel
from PyQt5.QtCore import QDate, Qt
def get_current_date():
date = QDate.currentDate()
label.setText(date.toString(Qt.DefaultLocaleLongDate))
app = QApplication([])
window = QMainWindow()
widget = QWidget()
layout = QVBoxLayout()
widget.setLayout(layout)
calendar = QCalendarWidget()
layout.addWidget(calendar)
button = QPushButton("Get Current Date")
button.clicked.connect(get_current_date)
layout.addWidget(button)
label = QLabel()
layout.addWidget(label)
window.setCentralWidget(widget)
window.show()
app.exec_()
这样你就已经学会了如何使用PyQt5 QCalendarWidget显示日期了。