def __init__(self, parent): super().__init__(parent) self.parent = parent self.setObjectName('dates_selector') self.setTitle('Dates range') self.setAlignment(Qt.AlignHCenter) self.layout = QHBoxLayout(self) self.layout.setSpacing(3) self.layout.setContentsMargins(5, 5, 5, 5) # Setup 'From' selector from_frame = QFrame(self, Qt.Widget) from_layout = QVBoxLayout(from_frame) self.from_lbl = QLabel(from_frame) self.from_lbl.setText('Select From date') self.from_lbl.setStyleSheet('font: bold') self.from_cal = QCalendarWidget(from_frame) self.from_cal.setGridVisible(True) self.from_cal.setFirstDayOfWeek(Qt.DayOfWeek(1)) self.from_cal.setMaximumDate(QDate().currentDate()) self.from_cal.clicked.connect(self.update_calendars) self.from_cal.clicked.connect(get_main_window().update_start_button) from_layout.addWidget(self.from_lbl, 0, Qt.AlignHCenter) from_layout.addWidget(self.from_cal, 0, Qt.AlignHCenter) # Setup 'To' selector to_frame = QFrame(self, Qt.Widget) to_layout = QVBoxLayout(to_frame) self.to_lbl = QLabel(to_frame) self.to_lbl.setText('Select To date') self.to_lbl.setStyleSheet('font: bold') self.to_cal = QCalendarWidget(to_frame) self.to_cal.setGridVisible(True) self.to_cal.setFirstDayOfWeek(Qt.DayOfWeek(1)) self.to_cal.setMaximumDate(QDate().currentDate()) self.to_cal.clicked.connect(self.update_calendars) self.to_cal.clicked.connect(get_main_window().update_start_button) self.to_cal.setDisabled(True) to_layout.addWidget(self.to_lbl, 0, Qt.AlignHCenter) to_layout.addWidget(self.to_cal, 0, Qt.AlignHCenter) self.layout.addWidget(from_frame, 0, Qt.AlignCenter) self.layout.addWidget(to_frame, 0, Qt.AlignCenter) self.update_calendars()
def firstDayChanged(self, index): self.calendar.setFirstDayOfWeek( Qt.DayOfWeek(self.firstDayCombo.itemData(index)))