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

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

QCalendar控件


QCalendar控件的作用


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


QCalendar控件常用方法

0c38b999b4664fc2abfd6fa52337d374.png

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


代码运行结果:


b612b5a88cde4311b6d9844736a1f825.png


QDateTimeEdit控件


QDateTimeEdit控件的作用


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


QDateTimeEdit控件常用方法


801e3726611d48fa9b838e094d398207.png


QDateTimeEdit控件常用信号


37c439ed280345e9b020ec2ee5a2c3da.png


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


代码运行结果:


2724be36d5914d8b96ab0c9025303308.png

相关文章
|
小程序
QT日历制作
QT日历制作
111 0
从零开始学Pyqt5之【控件介绍】(5):QRadioButton单选控件
从零开始学Pyqt5之【控件介绍】(5):QRadioButton单选控件
从零开始学Pyqt5之【控件介绍】(5):QRadioButton单选控件
从零开始学Pyqt5之【控件介绍】(12):QInputDialog对话框控件
从零开始学Pyqt5之【控件介绍】(12):QInputDialog对话框控件
从零开始学Pyqt5之【控件介绍】(12):QInputDialog对话框控件
从零开始学Pyqt5之【控件介绍】(13):QFontDialog字体选择对话框控件
从零开始学Pyqt5之【控件介绍】(13):QFontDialog字体选择对话框控件
从零开始学Pyqt5之【控件介绍】(13):QFontDialog字体选择对话框控件
|
数据安全/隐私保护
从零开始学Pyqt5之【控件介绍】(2):QLineEdit控件
从零开始学Pyqt5之【控件介绍】(2):QLineEdit控件
从零开始学Pyqt5之【控件介绍】(2):QLineEdit控件