QCalendar控件
QCalendar控件的作用
QCalendar是一个日历控件,它提供了一个基于月份的视图,允许用户通过鼠标或键盘选择日期,默认选中的是今天的日期,同时也可以对日历的日期范围进行规定。
QCalendar控件常用方法
QCalendar代码示例
# -*- coding: utf-8 -*- import sys from PyQt5 import QtCore from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtCore import QDate class CalendarExample( QWidget): def __init__(self): super(CalendarExample, self).__init__() self.initUI() def initUI(self): self.cal = QCalendarWidget(self) # 设定日历最小日期 self.cal.setMinimumDate(QDate(1980, 1, 1)) # 设定日历最大日期 self.cal.setMaximumDate(QDate(3000, 1, 1)) # 显示日历网格 self.cal.setGridVisible(True) self.cal.move(20, 20) # 选定一个日期,会发射一个QtCore.QDate信号, self.cal.clicked[QtCore.QDate].connect(self.showDate) self.lbl = QLabel(self) # selectedDate获取当前日期,默认是运行当前 date = self.cal.selectedDate() self.lbl.setText(date.toString("yyyy-MM-dd dddd")) self.lbl.move(20, 300) self.setGeometry(100,100,400,350) self.setWindowTitle('Calendar 例子') def showDate(self, date): # 在lb1控件上显示所选择的日期 self.lbl.setText(date.toString("yyyy-MM-dd dddd") ) if __name__ == '__main__': app = QApplication(sys.argv) demo = CalendarExample() demo.show() sys.exit(app.exec_())
代码运行结果:
QDateTimeEdit控件
QDateTimeEdit控件的作用
QDateTimeEdit控件可以允许用户编辑日期时间,使用键盘和上、下箭头按钮来增加或减少日期时间值。比如,当使用鼠标选中 QDateTimeEdit 中的年份时,可以使用键盘上的上、下键来改变数值。
QDateTimeEdit控件常用方法
QDateTimeEdit控件常用信号
QDateTimeEdit控件代码示例
# -*- coding: utf-8 -*- import sys from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtCore import QDate, QDateTime , QTime class DateTimeEditDemo(QWidget): def __init__(self): super(DateTimeEditDemo, self).__init__() self.initUI() def initUI(self): self.setWindowTitle('QDateTimeEdit例子') self.resize(300, 90) vlayout = QVBoxLayout() dateTimeEdit = QDateTimeEdit(self) dateTimeEdit2 = QDateTimeEdit(QDateTime.currentDateTime(), self) dateEdit = QDateTimeEdit(QDate.currentDate(), self) timeEdit = QDateTimeEdit(QTime.currentTime(), self) # 设置日期时间格式 dateTimeEdit.setDisplayFormat("yyyy-MM-dd HH:mm:ss") dateTimeEdit2.setDisplayFormat("yyyy/MM/dd HH-mm-ss") dateEdit.setDisplayFormat("yyyy.MM.dd") timeEdit.setDisplayFormat("HH:mm:ss") vlayout.addWidget( dateTimeEdit ) vlayout.addWidget( dateTimeEdit2) vlayout.addWidget( dateEdit ) vlayout.addWidget( timeEdit ) self.setLayout(vlayout) if __name__ == '__main__': app = QApplication(sys.argv) demo = DateTimeEditDemo() demo.show() sys.exit(app.exec_())
代码运行结果: