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

问题描述 投票:0回答:1

我有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()在无法获得其他东西时自动设置当前日期。但回到我的标题问题,如何设置第一个日历的选择日期作为第二个cal的最小值?

python pyqt pyqt5 qcalendarwidget
1个回答
0
投票

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

self.date2.cal.setMinimumDate(self.date1.cal.selectedDate()) # initial value
self.date1.cal.clicked.connect(self.date2.cal.setMinimumDate)
© www.soinside.com 2019 - 2024. All rights reserved.