在PyQt中使用QCalendarWidget选择日期范围
我正在使用 QCalendarWidget
这个工具,在 PyQt 中让用户从弹出的日历中选择一个日期。我希望用户能够选择一段日期,比如从11月12日到11月17日,而不仅仅是选择11月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()
2 个回答
1
虽然这是一篇很老的帖子,但我还是想分享一下我是怎么解决这个问题的。
我使用了两个 DateEdits
,一个是用来选择开始日期(fromDate
),另一个是用来选择结束日期(toDate
)。如果你想让你的 DateEdits
有一个日历弹出效果,可以把 calendarPopUp
这个参数设置为 True
。
0
我觉得这可能不太行。
我相信你已经考虑过添加两个日历小部件或者日期编辑小部件(一个用来选择范围的开始日期,一个用来选择结束日期)。
不过,除非你觉得自己能开发一个重写的类,否则真的应该考虑一下这个可能性。