Выберите диапазон дат с помощью QCalendarWidget в PyQt

#python #qt #pyqt

#python #qt #pyqt

Вопрос:

Я использую QCalendarWidget в PyQt для поиска единственной даты, на которую пользователь нажимает из всплывающего календаря. Я бы хотел, чтобы они могли выбирать диапазон дат — например, с 12 по 17 ноября, а не только 12-го.

В QCalendarWidget документах упоминаются NoSelection и SingleSelection . Как я могу реализовать множественный выбор?

Вот код, который у меня есть сейчас:

 def selectDates(self):
    self.dateWindow = QWidget()
    self.cal = QCalendarWidget(self)
    self.cal.clicked[QtCore.QDate].connect(self.showDate)
    self.hbox = QHBoxLayout()
    self.hbox.addWidget(self.cal)
    self.dateWindow.setLayout(self.hbox)
    self.dateWindow.setGeometry(300, 300, 350, 300)
    self.dateWindow.setWindowTitle('Calendar')

    self.dateWindow.show()

def showDate(self):
    print "Date picked: ", self.cal.selectedDate()
  

Ответ №1:

Хотя это действительно старый пост, но я все еще опубликовал, как я решил проблему. Я использовал 2 DateEdits , один для fromDate , а другой для toDate . Если вы хотите, чтобы у вас был всплывающий эффект календаря для вашего DateEdits , установите calendarPopUp для параметра значение True .

Ответ №2:

Я не думаю, что это возможно. Я уверен, что вы уже рассматривали факт добавления двух виджетов календаря или виджетов dateEdit (один для первой даты диапазона и один для последней). Но если вы не думаете, что сможете разработать переопределенный класс, вам действительно следует подумать об этой возможности.

Комментарии:

1. Хм — этого я и боялся. Я думаю, мне придется использовать опцию двойного календаря. Спасибо!