从零开始学Pyqt5之【控件介绍】(16):日历与时间控件

  • ​​QCalendar控件​​
  • ​​QCalendar控件的作用​​
  • ​​QCalendar控件常用方法​​
  • ​​QCalendar代码示例​​
  • ​​QDateTimeEdit控件​​
  • ​​QDateTimeEdit控件的作用​​
  • ​​QDateTimeEdit控件常用方法​​
  • ​​QDateTimeEdit控件常用信号​​
  • ​​QDateTimeEdit控件代码示例​​

QCalendar控件

QCalendar控件的作用

QCalendar是一个日历控件,它提供了一个基于月份的视图,允许用户通过鼠标或键盘选择日期,默认选中的是今天的日期,同时也可以对日历的日期范围进行规定。

QCalendar控件常用方法

从零开始学Pyqt5之【控件介绍】(16):日历与时间控件QCalendar、QDateTImeEdit_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_())

代码运行结果:

从零开始学Pyqt5之【控件介绍】(16):日历与时间控件QCalendar、QDateTImeEdit_python_02

QDateTimeEdit控件

QDateTimeEdit控件的作用

QDateTimeEdit控件可以允许用户编辑日期时间,使用键盘和上、下箭头按钮来增加或减少日期时间值。比如,当使用鼠标选中 QDateTimeEdit 中的年份时,可以使用键盘上的上、下键来改变数值。

QDateTimeEdit控件常用方法

从零开始学Pyqt5之【控件介绍】(16):日历与时间控件QCalendar、QDateTImeEdit_QCalendar_03

QDateTimeEdit控件常用信号

从零开始学Pyqt5之【控件介绍】(16):日历与时间控件QCalendar、QDateTImeEdit_QCalendar_04

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_())

代码运行结果:

从零开始学Pyqt5之【控件介绍】(16):日历与时间控件QCalendar、QDateTImeEdit_python_05