【PyQt】17.1-日历控件 不同风格的日期和时间、以及高级操作

日历控件puls版本

  • 前言
  • 一、日历控件中不同风格的日期和时间
    • 1.1 代码
    • 1.2 注意事项
      • 格式设置m的大小写问题
      • QTime和QDateTime的区别
    • 1.3 运行结果
  • 二、高级操作
    • 2.1 成倍调整
    • 2.2 下拉出日历
    • 2.3 事件函数
    • 2.4 获取设置的日期和时间
  • 完整代码

前言

1、不同风格的日期和时间展示
2、高级操作

一、日历控件中不同风格的日期和时间

QDateTimeEdit - 展示时间的框条,类似于文本输入框

1.1 代码

'''
#Author :susocool
#Creattime:2024/3/19
#FileName:40-日历控件
#Description: 日历控件的展示'''
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *class DateTimeEdit( QWidget ):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle('设置不同风格的日期和时间')self.resize(400,100)dateTimeEdit1 = QDateTimeEdit()dateTimeEdit2 = QDateTimeEdit(QDateTime.currentDateTime())  # 获取当前时间dateEdit = QDateTimeEdit(QDate.currentDate())   # 获取当前日期timeEdit = QDateTimeEdit(QTime.currentTime())# 显示样式dateEdit.setDisplayFormat("yyyy.MM.dd") # 这里需要注意m的大小写timeEdit.setDisplayFormat("HH:mm:ss")dateTimeEdit1.setDisplayFormat("yyyy-MM-dd HH:mm:ss")dateTimeEdit2.setDisplayFormat("yyyy/MM/dd HH-mm-ss")# 布局样式vlayout = QVBoxLayout()vlayout.addWidget(dateTimeEdit1)vlayout.addWidget(dateTimeEdit2)vlayout.addWidget(dateEdit)vlayout.addWidget(timeEdit)self.setLayout(vlayout)	# 总是忘记把布局添加上去if __name__ == '__main__':app = QApplication(sys.argv)ui = DateTimeEdit()ui.show()sys.exit(app.exec_())

1.2 注意事项

格式设置m的大小写问题

在大多数编程语言和库中,日期时间格式模式是区分大小写的。
通常,大写的 “Y” 表示年份,小写的 “y” 表示一个年份的数字;
大写的 “M” 表示月份,小写的 “m” 表示分钟;
大写的 “D” 表示月中的天数,小写的 “d” 表示一年中的某一天。
类似地,“H” 表示24小时制的小时数,“h” 表示12小时制的小时数,“S” 表示毫秒,“s” 表示秒。

在这里插入图片描述
切换成小写的字母就会产生错乱,因为小写的m表示分钟!!!
在这里插入图片描述

QTime和QDateTime的区别

1、QTime:QTime 类代表时间,它只包含小时、分钟、秒和毫秒信息,精确到毫秒级别。适合表示一天中的某个特定时间点,没有日期信息。

2、QDateTime:QDateTime 类代表日期和时间,它包含日期、小时、分钟、秒和毫秒信息,精确到毫秒级别。适合表示日期和时间,可以同时表示日期和时间的组合。

1.3 运行结果

在这里插入图片描述

按住Tab按键可以进行切换。然后修改,当然你也可以手动切换。
可以看出,前面一个是随机的产生一段日期时间,后面是获取当前时间并且按照我们设定的样式进行展示。

二、高级操作

2.1 成倍调整

当前日期后退or前进一整年

dateTimeEdit1.setMinimumDate(QDate.currentDate().addDays(-365))     # 往前翻一整年
dateTimeEdit1.setMaximumDate(QDate.currentDate().addDays(365))      # 往后翻一整年

在这里插入图片描述
在这里插入图片描述

2.2 下拉出日历

dateTimeEdit2.setCalendarPopup(True)

在这里插入图片描述

2.3 事件函数

事件有3:日期变化、时间变化、日期时间变化。
博文末尾补上完整代码
在这里插入图片描述
其改变引发打印结果的改变(槽函数)

2.4 获取设置的日期和时间

注意函数写一半,突然想设置全局变量时的方法。
结合完整代码食用,效果更佳。

    def onButtonClick(self):datetime = self.dateTimeEdit.dateTime()print(datetime)# 获取最大最小日期和时间print(self.dateTimeEdit.maximumDateTime())print(self.dateTimeEdit.minimumDateTime())# 获取最大最小日期print(self.dateTimeEdit.maximumDate())print(self.dateTimeEdit.minimumDate())

在这里插入图片描述

完整代码

'''
#Author :susocool
#Creattime:2024/3/19
#FileName:40-日历控件
#Description: 日历控件的展示'''
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *class DateTimeEdit( QWidget ):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle('设置不同风格的日期和时间')self.resize(400,100)dateTimeEdit1 = QDateTimeEdit()dateTimeEdit2 = QDateTimeEdit(QDateTime.currentDateTime())  # 获取当前时间dateEdit = QDateTimeEdit(QDate.currentDate())   # 获取当前日期timeEdit = QDateTimeEdit(QTime.currentTime())self.button = QPushButton('获取日期和时间')self.dateTimeEdit = dateTimeEdit1   # 设置全局变量# 显示样式dateEdit.setDisplayFormat("yyyy.MM.dd") # 这里需要注意m的大小写timeEdit.setDisplayFormat("HH:mm:ss")dateTimeEdit1.setDisplayFormat("yyyy-MM-dd HH:mm:ss")dateTimeEdit2.setDisplayFormat("yyyy/MM/dd HH-mm-ss")# 成倍调整dateTimeEdit1.setMinimumDate(QDate.currentDate().addDays(-365))     # 往前翻一整年dateTimeEdit1.setMaximumDate(QDate.currentDate().addDays(365))      # 往后翻一整年# 下拉出日历选择dateTimeEdit2.setCalendarPopup(True)# 布局样式vlayout = QVBoxLayout()vlayout.addWidget(dateTimeEdit1)vlayout.addWidget(dateTimeEdit2)vlayout.addWidget(dateEdit)vlayout.addWidget(timeEdit)vlayout.addWidget(self.button)  # 注意添加时与其他的区别self.setLayout(vlayout)# 槽函数dateTimeEdit1.dateChanged.connect(self.onDateChanged)dateTimeEdit1.timeChanged.connect(self.onDateTimeChanged)dateTimeEdit1.dateTimeChanged.connect(self.onDateTimeChanged)self.button.clicked.connect(self.onButtonClick)def onDateChanged(self,date):print(date)def onTimeChanged(self,time):print(time)def onDateTimeChanged(self,DateTime):print(DateTime)def onButtonClick(self):datetime = self.dateTimeEdit.dateTime()print(datetime)# 获取最大最小日期和时间print(self.dateTimeEdit.maximumDateTime())print(self.dateTimeEdit.minimumDateTime())# 获取最大最小日期print(self.dateTimeEdit.maximumDate())print(self.dateTimeEdit.minimumDate())if __name__ == '__main__':app = QApplication(sys.argv)ui = DateTimeEdit()ui.show()sys.exit(app.exec_())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/766540.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uni-app里面如何使用图标

目录 一、导入 1.在官方(iconfont-阿里巴巴矢量图标库)选择自己想要的图标,加入购物车 2. 在点击购物车下载代码 3.解压文件夹 并更改名字 4.将文件夹(iconfont)整个放到项目中的static中 5.修改iconfont.css文件…

超越工具的限制!菜鸟工具箱帮你节省时间

在这个飞速发展的时代,我们越来越依赖各种工具来提高工作效率和解决问题。然而,你是否意识到,有些工具不仅仅是工具,它们还能为你带来更多的可能性和机遇?菜鸟工具箱就是这样一个超越工具本身的存在! 菜鸟工…

目标检测的指标评估

目标检测模型的评价指标主要用于衡量模型的性能,特别是它在定位和识别目标方面的准确性。以下是一些常见的评价指标: 1. 精确度 (Precision): 表示检测到的目标中,正确检测到的目标所占的比例。精确度高意味着模型产生的误报(错误…

腾讯云GPU服务器介绍_GPU实例规格价格_AI_深度学习

腾讯云GPU服务器是提供GPU算力的弹性计算服务,腾讯云GPU服务器具有超强的并行计算能力,可用于深度学习训练、科学计算、图形图像处理、视频编解码等场景,腾讯云百科txybk.com整理腾讯云GPU服务器租用价格表、GPU实例优势、GPU解决方案、GPU软…

Linux之文件系统与软硬链接

前言 我们之前阐述的内容都是在文件打开的前提下, 但是事实上不是所有文件都是被打开的, 且大部分文件都不是被打开的(也就是文件当前并不需要被访问), 都在磁盘中进行保存. 那这些没有被(进程)打开的文件, 也是需要被管理的! 对于这部分文件核心工作之一是能够快速定位文件…

【java数据结构】基于java提供的ArrayList实现的扑克牌游戏-(附源码~)

【Java数据结构】基于java泛型实现的二维数组完成三人扑克游戏 基本框架的实现创建一副牌如何进行洗牌:每个人抓的牌放到哪里: 源码具体实现cardcardsTest 个人简介:努力学编程 每日鸡汤:stay foolish,stay hungry-史蒂芬.乔布斯斯…

鸿蒙Harmony应用开发—ArkTS-LazyForEach:数据懒加载

LazyForEach从提供的数据源中按需迭代数据,并在每次迭代过程中创建相应的组件。当在滚动容器中使用了LazyForEach,框架会根据滚动容器可视区域按需创建组件,当组件滑出可视区域外时,框架会进行组件销毁回收以降低内存占用。 接口…

EI级!高创新原创未发表!VMD-TCN-BiGRU-MATT变分模态分解卷积神经网络双向门控循环单元融合多头注意力机制多变量时间序列预测(Matlab)

EI级!高创新原创未发表!VMD-TCN-BiGRU-MATT变分模态分解卷积神经网络双向门控循环单元融合多头注意力机制多变量时间序列预测(Matlab) 目录 EI级!高创新原创未发表!VMD-TCN-BiGRU-MATT变分模态分解卷积神经…

2024年 前端JavaScript Web APIs 第五天 笔记

5.1-BOM和延迟函数setTimeout 5.2-事件循环eventloop 1-》 3 -》2 1-》 3 -》2 5.3-location对象 案例&#xff1a;5秒钟之后自动跳转页面 <body><a href"http://www.itcast.cn">支付成功<span>5</span>秒钟之后跳转到首页</a><sc…

Docker搭建LNMP环境实战(02):Win10下安装VMware

实战开始&#xff0c;先安装 VMware 虚拟机。话不多说&#xff0c;上手就干&#xff01; 1、基本环境检查 1.1、本机Bios是否支持虚拟化 进入&#xff1a;任务管理器- 性能&#xff0c;查看“虚拟化”是否启用&#xff0c;如果已启用&#xff0c;则满足要求&#xff0c;如果未…

【Swagger】接口文档生成

文章目录 一、前后端分离开发流程二、YApi导入接口文档三、Swagger3.1 介绍3.2 使用步骤3.2.1 导入 knife4j 的maven依赖3.2.2 在配置类中加入 knife4j 相关配置3.2.3 配置类中设置静态资源映射3.2.4 访问测试 3.3 常用注解3.4 全局参数设置 四、YApi 与 Swagger 一、前后端分离…

Day18:LeedCode 513.找树左下角的值 112. 路径总和 106.从中序与后序遍历序列构造二叉树

513. 找树左下角的值 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1 思路:出该二叉树的 最底层 最左边 节点的值找出深度最大的第一个结点(左结点先遍历) 方法一…

一个单生产-多消费模式下无锁方案(ygluu/卢益贵)

一个单生产-多消费模式下无锁方案 ygluu/卢益贵 关键词&#xff1a;生产者-消费者模型、无锁队列、golang、RWMutex 本文介绍一个“单生产(低频)-多消费”模式下的无锁哈希类方案&#xff0c;这个方案的性能优于golang的RWMutex&#xff0c;因为它永远不会因为“写”而导致与…

亚稳态及其解决办法

异步电路 亚稳态 亚稳态亚稳态的产生原因什么是同步异步信号怎么消除亚稳态 亚稳态 在数字电路中&#xff0c;每一位数据不是1&#xff08;高电平&#xff09;就是0&#xff08;低电平&#xff09;。当然对于具体的电路来说&#xff0c;并非1&#xff08;高电平&#xff09;就是…

Notepad++ 如何调整显示字面大小

在 Notepad 上&#xff0c;可以使用 ctrl 加上鼠标的左键来滚动来进行调整。 如何恢复默 可以使用 Ctrl 加数字键盘上的 / 键 来恢复默认设置。 当然也可以通过菜单栏上 view 菜单下的 Zoom 选项。 上面的界面中可以看到我们的在 Notepad 中使用的选项。 Notepad 如何调整显示…

Flutter开发进阶之瞧瞧BuildOwner

Flutter开发进阶之瞧瞧BuildOwner 上回说到关于Element Tree的构建还缺最后一块拼图&#xff0c;build的重要过程中会调用_element!.markNeedsBuild();&#xff0c;而markNeedsBuild会调用owner!.scheduleBuildFor(this);。 在Flutter框架中&#xff0c;BuildOwner负责管理构建…

计算机视觉之三维重建(2)---摄像机标定

文章目录 一、回顾线代1.1 线性方程组的解1.2 齐次线性方程组的解 二、透镜摄像机的标定2.1 标定过程2.2 提取摄像机参数2.3 参数总结 三、径向畸变的摄像机标定3.1 建模3.2 求解 四、变换4.1 2D平面上的欧式变换4.2 2D平面上的相似变换和仿射变换4.3 2D平面上的透射变换4.4 3D…

使用 VMWare 安装 Android-x86 系统(小白版)

文章目录 VMWare 介绍Android 系统介绍概述最终效果前置步骤开始安装 VMWare 介绍 VMware Workstation是VMware公司开发的一款桌面虚拟化软件。它允许用户在一台物理计算机上同时运行多个操作系统&#xff0c;每个操作系统都在自己的虚拟机中运行。这使得用户可以在同一台计算…

实例:NX二次开发使用链表进行拉伸功能(链表相关功能练习)

一、概述 在进行批量操作时经常会利用链表进行存放相应特征的TAG值&#xff0c;以便后续操作&#xff0c;最常见的就是拉伸功能。这里我们以拉伸功能为例子进行说明。 二、常用链表相关函数 UF_MODL_create_list 创建一个链表&#xff0c;并返回链表的头指针。…

认识String类

认识String类 前面我们学习了类和对象&#xff0c;这一小节咱们来谈String类 目录 认识String类前言一、String类的创建方式二、String引用类型的特点及方法1.存储内容2.String对象的比较3.字符串查找在这里插入图片描述4.转换&#xff08;一&#xff09;数字转为为字符串&…