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

时间:2019-04-08 21:56:35

标签: python pyqt pyqt5 qcalendarwidget

我有2个QCalendarWidget对象,我需要将从第一个对象中选择的日期设置为第二个日历中的最小日期。我的日历代码看起来像这样

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)

在另一个类中,我创建2个日历类型的对象

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

我试图这样设置self.date2的最小日期

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

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

1 个答案:

答案 0 :(得分:0)

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

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