Qt dateEdit 选择日期控件

课设要求图形化界面,使用 Qt Designer 设计了UI,PyQt5转为.py文件,并在此基础上进行了一些UI方面改进。笔记一则。

控件UI设计

  • 初始需求就是设计一个能够输入日期的控件。确定为组件dateEdit,效果如下:
    在这里插入图片描述
  • 设置可选择日期范围:
    加入setMinimumDatesetMaximumDate方法;
    其内参数为一个QDate.currentDate()的返回值,并可以通过.addDays(-365)方法进行日期加减操作。
    实际使用完整控件代码如下,示例查询范围为三年前至今。
  • 设置日历样式直观选择
    加入 setCalendarPopup(True) 方法,并将参数设为True。
    效果如下:
    Qt dateEdit 选择日期控件_第1张图片

部分代码如下

 self.label_2 = QtWidgets.QLabel(self.verticalLayoutWidget_2)
 self.label_2.setObjectName("label_2")
 self.horizontalLayout.addWidget(self.label_2, 0, QtCore.Qt.AlignHCenter)
 self.dateEdit = QtWidgets.QDateEdit(self.verticalLayoutWidget_2)
 self.dateEdit.setObjectName("dateEdit")
 self.horizontalLayout.addWidget(self.dateEdit)
 # 设置日期最大值与最小值,在当前日期的基础上,可查三年前至当天
 self.dateEdit.setMinimumDate(QDate.currentDate().addDays(-365 * 3))
 self.dateEdit.setMaximumDate(QDate.currentDate())
 # 设置日历控件允许弹出
 self.dateEdit.setCalendarPopup(True)

控件输入读取

  • 输入日期的读取:
    使用 self.dateEdit.date() 方法;
    返回:date类型的属性值
    转为string类型:使用toString()方法
    得到2021-07-01形式:toString()方法参数设为Qt.ISODate
self.dateChoice = self.dateEdit.date()  # 选择日期
print(self.dateChoice,type(self.dateChoice))

##输出
##PyQt5.QtCore.QDate(2018, 7, 1) 
  • 使用toString()方法
self.dateChoice = self.dateEdit.date().toString()  # 选择日期
print(self.dateChoice,type(self.dateChoice))

##输出
##周日 7月 1 2018 
  • toString()方法参数设定为Qt.ISODate即可得到 YYYY-mm-dd形式的字符串表达
self.dateChoice = self.dateEdit.date().toString(Qt.ISODate)  # 选择日期
print(self.dateChoice,type(self.dateChoice))

##输出
##2018-07-01 
  • toString()方法及其参数的选择:
    未放过多精力查阅,但以上参数确实可行。挖个坑吧。
  • ISODate 类型:
    。。。

你可能感兴趣的:(Python学习笔记,python,qt)