如何从 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)
我有 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)