如何从 QCalendarWidget object 获取日期并将其设置为最小日期?

How to get date from QCalendarWidget object and set it as minimum date?

我有 2 个 QCalendarWidget object,我需要将第一个 object 中的选定日期设置为第二个日历中的最短日期。我的日历代码是这样的

class Calendar(QtWidgets.QWidget):
    def __init__(self, parent=None):
        QtWidgets.QWidget.__init__(self, parent)
        self.VBox = QtWidgets.QVBoxLayout()
        self.cal = QtWidgets.QCalendarWidget(self)
        self.cal.setGridVisible(True)
        self.VBox.addWidget(self.cal)
        self.setLayout(self.VBox)

在其他 class 中,我创建了 2 objects 类型的日历

        self.date1 = Calendar()
        self.date2 = Calendar()

我试过像那样设置 self.date2 的最短日期

self.date2.cal.setMinimumDate(self.date1.cal.selectedDate())

但是没用。它将当前日期设置为最小日期,而不是从第一个日历中选择的日期。我知道为什么会这样——因为 selectedDate() 在无法获取其他信息时自动设置了当前日期。但是回到我的标题问题,如何将第一个日历中的选择日期设置为第二个日历的最小日期?

您必须使用每次 select 日期时发出的点击信号:

self.date2.cal.setMinimumDate(self.date1.cal.selectedDate()) # initial value
self.date1.cal.clicked.connect(self.date2.cal.setMinimumDate)