PyQt5 QCalendarWidget 显示它

  • Post category:Python

下面是Python的PyQt5 QCalendarWidget显示的完整使用攻略。

  1. 安装PyQt5

如果你还没有安装PyQt5,你需要先执行以下命令来安装它:

pip install PyQt5
  1. 导入模块

接下来,在Python中你需要导入必要的模块:

from PyQt5.QtWidgets import QApplication, QMainWindow, QCalendarWidget, QVBoxLayout, QWidget
from PyQt5.QtCore import QDate
  1. 创建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()
  1. 查看日期

现在你已经创建好了一个空的QCalendarWidget,你可以设置当前显示的日期并查看用户选择的日期了:

date = QDate.currentDate()
calendar.setSelectedDate(date)

selected_date = calendar.selectedDate()
print(selected_date.toString("yyyy-MM-dd"))
  1. 示例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_()
  1. 示例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显示日期了。