python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例


Posted in Python onFebruary 27, 2020

PyQt5日期时间控件QDateTimeEdit介绍

QDateTimeEdit是一个允许用户编辑日期时间的控件,可以使用键盘上的上下键头按钮来增加或减少日期的时间值,QDateTimeEdit通过setDisplayFormat()函数来设置显示的日期时间格式

QDateTimeEdit类中常用方法

方法 描述
setDisplayFormat 设置日期的时间格式
yyyy:代表年份,用4为数表示
MM:代表月份,取值范围01-12
dd:代表日,取值范围01-31
HH:代表小时,取值范围00-23
mm:代表分钟,取值范围00-59
ss:代表秒,取值范围00-59
setMinimumDate() 设置控件的最小日期
setMaximumDate() 设置控件的最大日期
time() 返回编辑的时间
date() 返回编辑的日期

PyQt5日期时间控件QDateTimeEdit实例一

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

    #实例化编辑时间日期的控件

    #默认下,不指定日期的时间,系统会设置一个和本地相同的日期时间格式,时间默认2000年1月1日0时0分0秒
    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日期时间控件实例一代码解析:

在默认情况下,如果QDateTimeEdit类构造时不指定日期时间,那么系统会为其设置一个和本地相同的日期时间格式,并且值为2000年1月1日0时0分0秒,也可以手动指定控件显示的日期时间

#默认下,不指定日期的时间,系统会设置一个和本地相同的日期时间格式,时间默认2000年1月1日0时0分0秒
    dateTimeEdit = QDateTimeEdit(self)
    #指定当前日期时间为控件的日期时间
    dateTimeEdit2 = QDateTimeEdit(QDateTime.currentDateTime(), self)
    #指定当前地日期为控件的日期,注意没有指定时间
    dateEdit = QDateTimeEdit(QDate.currentDate(), self)
    #指定当前地时间为控件的时间,注意没有指定日期
    timeEdit = QDateTimeEdit(QTime.currentTime(), self)

效果如下图

python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例

设置日期时间格式,如果不想使用系统默认的格式,可以通过setDisplayFormat()来定义日期时间格式

# 设置日期时间格式,可以选择/ . : -等符号自定义数据连接符
    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")

显示效果如图

python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例

PyQt5日期时间控件QDateTimeEdit实例二

import sys
from PyQt5.QtCore import QDate,QDateTime,QTime
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *

class DateTimeEditDemo(QWidget):
  def __init__(self):
    super(DateTimeEditDemo, self).__init__()
    self.initUI()
  def initUI(self):
    #设置标题与初始大小
    self.setWindowTitle('QDateTimeEdit 例子')
    self.resize(300,90)

    #垂直布局
    layout=QVBoxLayout()

    #创建日期时间空间,并把当前日期时间赋值,。并修改显示格式
    self.dateEdit=QDateTimeEdit(QDateTime.currentDateTime(),self)
    self.dateEdit.setDisplayFormat('yyyy-MM-dd HH:mm:ss')

    #设置日期最大值与最小值,在当前日期的基础上,后一年与前一年
    self.dateEdit.setMinimumDate(QDate.currentDate().addDays(-365))
    self.dateEdit.setMaximumDate(QDate.currentDate().addDays(365))

    #设置日历控件允许弹出
    self.dateEdit.setCalendarPopup(True)

    #当日期改变时触发槽函数
    self.dateEdit.dateChanged.connect(self.onDateChanged)
    #当日期时间改变时触发槽函数
    self.dateEdit.dateTimeChanged.connect(self.onDateTimeChanged)
    #当时间改变时触发槽函数
    self.dateEdit.timeChanged.connect(self.onTimeChanged)

    #创建按钮并绑定一个自定义槽函数
    self.btn=QPushButton('获得日期和时间')
    self.btn.clicked.connect(self.onButtonClick)

    #布局控件的加载与设置
    layout.addWidget(self.dateEdit)
    layout.addWidget(self.btn)
    self.setLayout(layout)

  #日期发生改变时执行
  def onDateChanged(self,date):
    #输出改变的日期
    print(date)
  #无论是日期还是时间改变都执行
  def onDateTimeChanged(self,dateTime):
    #输出改变的日期时间
    print(dateTime)
  #时间发生改变执行
  def onTimeChanged(self,time):
    #输出改变的时间
    print(time)
  def onButtonClick(self):
    dateTime=self.dateEdit.dateTime()
    #最大日期
    maxDate=self.dateEdit.maximumDate()
    #最大日期时间
    maxDateTime=self.dateEdit.maximumDateTime()
    #最大时间
    maxTime=self.dateEdit.maximumTime()

    #最小日期
    minDate = self.dateEdit.minimumDate()
    #最小日期时间
    minDateTime=self.dateEdit.minimumDateTime()
    #最小时间
    minTime=self.dateEdit.minimumTime()

    print('\n选择时间日期')
    print('日期时间=%s' %str(dateTime))
    print('最大日期=%s'%str(maxDate))
    print('最大日期时间=%s'%str(maxDateTime))
    print('最大时间=%s'%str(maxTime))
    print('最小日期=%s'%str(minDate))
    print('最小日期时间=%s'%str(minDateTime))
    print('最小时间=%s'%str(minTime))

if __name__ == '__main__':
  app=QApplication(sys.argv)
  demo=DateTimeEditDemo()
  demo.show()
  sys.exit(app.exec_())

效果图如下

python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例

PyQt5日期时间控件QDateTimeEdit实例二代码分析

QDateEdit和QTimeEdit均继承自QDateTimeEdit类,他们的许多特性和功能都有QDateTimeEdit类提供,设置格式是要注意:

QDateEdit用来编辑控件的日期,年月日

QTimeEdit用来编辑控件的时间,时分秒

如果要同时操作日期时间,请使用QDateTimeEdit

设置弹出日历时要注意:用来弹出日历的类只有QDateTimeEdit和QDateEdit,而QTimeEdit类虽然在语法上可以设置弹出日历,但是不起作用………………

#设置日历控件允许弹出
self.dateEdit.setCalendarPopup(True)

设置日期时间范围,设置日期时间为今天,日历游戏范围为:【今天-365,今天+365】

#设置日期最大值与最小值,在当前日期的基础上,后一年与前一年
self.dateEdit.setMinimumDate(QDate.currentDate().addDays(-365))
self.dateEdit.setMaximumDate(QDate.currentDate().addDays(365))

获取日期时间

可以通过date(),datetime()等方法来获取日期时间对象,如果要获取年月日等信息,则可以调用QDate的year(),month(),day()等函数

dateTime=self.dateEdit.dateTime()
    #最大日期
    maxDate=self.dateEdit.maximumDate()
    #最大日期时间
    maxDateTime=self.dateEdit.maximumDateTime()
    #最大时间
    maxTime=self.dateEdit.maximumTime()

    #最小日期
    minDate = self.dateEdit.minimumDate()
    #最小日期时间
    minDateTime=self.dateEdit.minimumDateTime()
    #最小时间
    minTime=self.dateEdit.minimumTime()

    print('\n选择时间日期')
    print('日期时间=%s' %str(dateTime))
    print('最大日期=%s'%str(maxDate))
    print('最大日期时间=%s'%str(maxDateTime))
    print('最大时间=%s'%str(maxTime))
    print('最小日期=%'%str(minDate))
    print('最小日期时间=%s'%str(minDateTime))
    print('最小时间=%s'%str(minTime))

信号与槽函数

QDateTimeEdit控件常用的信号是dateChanged,dateTimeChanged,TimeChanged,分别在改变日期,日期时间,时间时发射

通过以下代码设置控件的信号连接槽函数

#当日期改变时触发槽函数
    self.dateEdit.dateChanged.connect(self.onDateChanged)
    #当日期时间改变时触发槽函数
    self.dateEdit.dateTimeChanged.connect(self.onDateTimeChanged)
    #当时间改变时触发槽函数
    self.dateEdit.timeChanged.connect(self.onTimeChanged)

槽函数如下

#日期发生改变时执行
  def onDateChanged(self,date):
    #输出改变的日期
    print(date)
  #无论是日期还是时间改变都执行
  def onDateTimeChanged(self,dateTime):
    #输出改变的日期时间
    print(dateTime)
  #时间发生改变执行
  def onTimeChanged(self,time):
    #输出改变的时间
    print(time)

本文详细介绍PyQt5日期时间控件QDateTimeEdit详细使用方法与实例,更多关于PyQt5日期时间控件的使用方法请查看下面的相关链接

Python 相关文章推荐
Python编写检测数据库SA用户的方法
Jul 11 Python
用于统计项目中代码总行数的Python脚本分享
Apr 21 Python
python编程嵌套函数实例代码
Feb 11 Python
利用python实现微信头像加红色数字功能
Mar 26 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
python用列表生成式写嵌套循环的方法
Nov 08 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
Dec 20 Python
python RC4加密操作示例【测试可用】
Sep 26 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
May 20 Python
python IP地址转整数
Nov 20 Python
matplotlib 范围选区(SpanSelector)的使用
Feb 24 Python
Python使用mitmproxy工具监控手机 下载手机小视频
Apr 18 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
Feb 27 #Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
Feb 27 #Python
Python 之 Json序列化嵌套类方式
Feb 27 #Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
Feb 27 #Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
Feb 27 #Python
python脚本实现mp4中的音频提取并保存在原目录
Feb 27 #Python
python列表切片和嵌套列表取值操作详解
Feb 27 #Python
You might like
PHP 7.0.2 正式版发布
2016/01/08 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
2017/05/19 PHP
Yii框架批量插入数据扩展类的简单实现方法
2017/05/23 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
js保留小数点后几位的写法
2014/01/03 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
2014/11/23 Javascript
JavaScript获取页面中表单(form)数量的方法
2015/04/03 Javascript
探究JavaScript函数式编程的乐趣
2015/12/14 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
NodeJS自定义模块写法(详解)
2017/06/27 NodeJs
JavaScript Reflect Metadata实现详解
2019/12/12 Javascript
在Python中编写数据库模块的教程
2015/04/29 Python
python使用win32com库播放mp3文件的方法
2015/05/30 Python
简介二分查找算法与相关的Python实现示例
2015/08/26 Python
简单谈谈Python中函数的可变参数
2016/09/02 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
Python SQLite3简介
2018/02/22 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
python 获取图片分辨率的方法
2019/01/08 Python
基于Python的图像数据增强Data Augmentation解析
2019/08/13 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
全网首秀之Pycharm十大实用技巧(推荐)
2020/04/27 Python
Python2.6版本pip安装步骤解析
2020/08/17 Python
html5设计原理(推荐收藏)
2014/05/17 HTML / CSS
html5使用canvas绘制一张图片
2014/12/15 HTML / CSS
Gina Bacconi官网:吉娜贝康尼连衣裙和礼服
2018/04/24 全球购物
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
医学专业毕业生个人求职信
2013/12/25 职场文书
会议接待欢迎词
2014/01/12 职场文书
施工安全责任书范本
2014/07/24 职场文书
2014班子成员自我剖析材料思想汇报
2014/10/01 职场文书
2015年领导干部廉洁自律工作总结
2015/05/26 职场文书