PyQt QCalendar小部件
QCalendar 小部件是一个实用的日期选择控件。它提供基于月份的视图。用户可以通过鼠标或键盘来选择日期,默认为今天的日期。也可以指定日历的日期范围。
以下是该类的一些工具方法:
下面是QCalendar最常用的方法:
序号 | 方法和描述 |
---|---|
1 | setDateRange() 设置可选择的日期的下限和上限 |
2 | setFirstDayOfWeek() 确定日历中第一列的日期 预定义的日期常量有 − Qt.Monday(星期一) Qt.Tuesday(星期二) Qt.Wednesday(星期三) Qt.Thursday(星期四) Qt.Friday(星期五) Qt.Saturday(星期六) Qt.Sunday(星期日) |
3 | setMinimumDate() 设置可选择的最小日期 |
4 | setMaximumDate() 设置可选择的最大日期 |
5 | setSelectedDate() 设置一个QDate对象作为选定日期 |
6 | showToday() 显示当前日期所在的月份 |
7 | selectedDate() 获取选定的日期 |
8 | setGridvisible() 打开或关闭日历的网格显示 |
示例
下面的示例包含一个日历小部件和一个标签,用于显示当前选中的日期。完整的代码如下:
import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
cal = QtGui.QCalendarWidget(self)
cal.setGridVisible(True)
cal.move(20, 20)
cal.clicked[QtCore.QDate].connect(self.showDate)
self.lbl = QtGui.QLabel(self)
date = cal.selectedDate()
self.lbl.setText(date.toString())
self.lbl.move(20, 200)
self.setGeometry(100,100,300,300)
self.setWindowTitle('Calendar')
self.show()
def showDate(self, date):
self.lbl.setText(date.toString())
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
以上代码产生以下输出: