Python 使用Qt进行开发(三)
下面我们实现日期时间框的添加,表示日期时间的文本框可以使用QtWidgets控件下的 QDateEdit() , QTimeEdit() , QDateTime() 三个方法实现。
1,使用QDateEdit() 我们可以得到一个只显示日期的文本框,在文本框中我们可以手动输入日期,也可以单击右侧的上、下按钮设置日期。不定义默认值的话,日期文边框的例的默认值为2000-01-01
#创建日期文本框
self.date = QtWidgets.QDateEdit(w)
#调整日期文本框的位置大小
self.date.setGeometry(QtCore.QRect(150,30,160,30))
#设置日期显示的格式
self.date.setDisplayFormat("yyyy-MM-dd")
效果图如下

另外,我们修改显示的默认值为当前日期,添加以下代码
now_day = time.strftime("%Y-%m-%d",time.localtime())
self.date.setDate(QtCore.QDate.fromString(now_day, 'yyyy-MM-dd'))
效果图如下

我们还可以使用日历插件获取日期,只需要将日期框的 calendarPopup 属性值为True 即可,代码代码如下
self.date.setCalendarPopup(True)
效果图如下

2,QTimeEdit() 可以创建一个时间的文本框,代码如下
self.label1 = QtWidgets.QLabel(w)
self.label1.setGeometry(QtCore.QRect(100, 60, 120, 45))
self.label1.setFont(QtGui.QFont("Roman times",14))
self.label1.setText("时间:")
#创建一个时间框
self.time = QtWidgets.QTimeEdit(w)
self.time.setGeometry(QtCore.QRect(150,65,160,30))
self.time.setDisplayFormat("hh:mm:ss")
#获取并定义当前时间
now_time = time.strftime("%H:%M:%S",time.localtime())
self.time.setTime(QtCore.QTime.fromString(now_time, 'hh:mm:ss'))
效果图如下

3,上边的设置日期和时间是分开的,操作起来会比较繁琐,这时我们就可以使用 QDateTimeEdit() 方法了
self.label1 = QtWidgets.QLabel(w)
self.label1.setGeometry(QtCore.QRect(60, 60, 120, 45))
self.label1.setFont(QtGui.QFont("Roman times",14))
self.label1.setText("日期时间:") self.time = QtWidgets.QDateTimeEdit(w)
self.time.setGeometry(QtCore.QRect(150,65,160,30))
self.time.setDisplayFormat("yyyy-MM-dd hh:mm:ss")
#设置使用日历控件
self.time.setCalendarPopup(True)
#获取并定义当前时间
now_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
self.time.setDateTime(QtCore.QDateTime.fromString(now_time, 'yyyy-MM-dd hh:mm:ss'))
效果图如下

Python 使用Qt进行开发(三)的更多相关文章
- Qt计算器开发(三):执行效果及项目总结
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/guodongxiaren/article/details/26046543 执行效果 project ...
- Python 使用Qt进行开发(二)
上次简单实现了显示窗口,下面我们在窗口中加入一些部件. 1,我们在窗口中使用 setToolTip() 方法添加一个文本提示,在窗口中鼠标暂停几秒即可显示该文本信息. class test(): de ...
- Qt计算器开发(二):信号槽实现数学表达式合法性检查
表达式的合法性 由于我们的计算器不是单步计算的,所以我们能够一次性输入一个长表达式.然而假设用户输入的长表达式不合法的话,那么就会引发灾难.所以有必要对于用户的输入做一个限制. 一些限制举例: 比方, ...
- Python服务器开发三:Socket
Python服务器开发三:Socket socket是操作系统中I/O的延续,它可以使进程和机器之间的通信成为可能.socket可以看成一个标准的文件描述符.不同的是文件需要用open()函数打开 ...
- Qt+ECharts开发笔记(三):ECharts的柱状图介绍、基础使用和Qt封装Demo
前言 上一篇成功是EChart随着Qt窗口变化而变化,本篇将开始正式介绍柱状图介绍.基础使用,并将其封装一层Qt. 本篇的demo实现了隐藏js代码的方式,实现了一个条形图的基本交互方式,即Qt ...
- 进击的Python【第六章】:Python的高级应用(三)面向对象编程
Python的高级应用(三)面向对象编程 本章学习要点: 面向对象编程介绍 面向对象与面向过程编程的区别 为什么要用面向对象编程思想 面向对象的相关概念 一.面向对象编程介绍 面向对象程序设计(英语: ...
- 转:Qt 嵌入式开发环境搭建
地址: http://www.cnblogs.com/lishixian/articles/3013897.html 作者:lsx_007 这里主要是记录了自己在搭建嵌入式开发环境时阅 ...
- 老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具
老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具 poptest是业内唯一的测试开发工程师培训机构,测试开发工程师主要是为测试服务开发测试工具,在工作中要求你做网络级别的安全 ...
- 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)
目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构 前言 学习Python也有一个半月时间了,学到现在感觉 ...
随机推荐
- SQL注入的一些技巧分享
先上一道简单的ctf注入题: 一道利用order by进行注入的ctf题 很不错的一道利用order by的注入题,之前不知道order by除了爆字段还有这种操作. 原题地址:http://chal ...
- var与let变量for遍历的问题
var Liarry = document.getElementsByTagName('li'); /**方法一*描述:自执行函数,将变量当参数传入(闭包的思想,保存当前的值).*/ for (var ...
- 十二、LaTex中数学公式多行排版
- windows核心编程01_错误处理
windows函数调用出错时,可以通过方法去查询出错根源在哪里. #include <Windows.h> #include <iostream> using namespac ...
- AIX中的进程管理
1.AIX中的进程 (1)后台进程 后台进程运行时,用户不必等待当前后台进程的结束,即可以运行下一个进程. 后台进程的运行方式: # command & (2)提高进程优先等级 -- ni ...
- zabbix 数据库问题
Too many connections ::052844.247 Cannot connect to the database. Exiting... :: started [trapper #] ...
- python爬取百度图片
import requests import re from urllib import parse import os from threading import Thread def downlo ...
- 01Java经典问题
1.利用Dos输出hello world 建立一个Test.java文件,放在e盘: public class Test{ public static void main(String[] args) ...
- java高并发核心要点|系列4|CPU内存指令重排序(Memory Reordering)
今天,我们来学习另一个重要的概念. CPU内存指令重排序(Memory Reordering) 什么叫重排序? 重排序的背景 我们知道现代CPU的主频越来越高,与cache的交互次数也越来越多.当CP ...
- 【NOIP2016提高A组模拟8.19】(雅礼联考day2)树上路径
题目 给出一棵树,求出最小的k,使得,且在树中存在路径p,使得k>=S且k<=E.(k为路径p上的边的权值和). 分析 点分治,设当前为x的,求在以x为根的子树中,经过x的路径(包括起点或 ...