设为首页 加入收藏

TOP

利用Eric+Qt Designer编写倒计时时钟(一)
2017-09-30 17:46:02 】 浏览:5952
Tags:利用 Eric Designer 编写 倒计时 时钟

【前言】前几日通过编写命令行通讯录,掌握了Python的基本语法结构,于是开始向更高水平冲击,利用Eric与Qt Designer 编写一个带界面的小程序。本次实操中也确实遇到了不少问题,通过学习也都解决了,达到了学习进步的目的。
【吐槽】写博客比编程序难多了,程序写了一下午,博客写了一整天,这么费力的写出来,希望可以帮助到一些刚开始学习Python的朋友。由于我不是科班出身,编程纯属业余爱好,所以也是一边学一边编的,有不足的地方还请批评指正。

1.目标

编写一个倒计时时钟程序,用饼图的形式显示一天、一周、一个月以及一年已经过了多少时间还剩多少时间,用于提醒人珍惜时间。

2.实现方法

  • 由于准库time模块不能继承,创建一个新的时间的类,使用标准库time模块来进行时间的相关操作。
  • 使用Eric与Qt Designer开发
  • 使用matplotlib的pie函数绘制饼图

3.菜鸟难点

  1. 对time模块不熟悉,不知如何使用。
  2. Qt Designer的使用。
  3. Qt中添加matplotlib组件窗口。

3.1 time模块

time 模块提供了一些处理日期和一天内时间的函数。它是建立在 C 运行时库的简单封装。
给定的日期和时间可以被表示为浮点型(从参考时间, 通常是 1970.1.1 到现在经过的秒数,即 Unix 格式),或者一个表示时间的 struct (类元组)。

方法

3.1.1 time()

返回从1970.1.1 到现在经过的秒数

>>> import time
>>> time.time()
1471794516.136771

3.1.2 localtime()

返回元组形式的时间,

>>> import time
>>> time.localtime()
time.struct_time(tm_year=2016, tm_mon=8, tm_mday=21, tm_hour=23, tm_min=49, tm_sec=57, tm_wday=6, tm_yday=234, tm_isdst=0)
名称 含义
tm_year
tm_mon
tm_mday
tm_hour
tm_min
tm_sec
tm_wday 周几(0-6)
tm_yday 一年中的第几天
tm_isdst -1代表系统判断是否为夏时令
0代表非夏时令
1代表夏时令

3.1.3 ctime()

返回字符串形式的时间

>>> import time
>>> time.ctime()
'Sun Aug 21 23:50:56 2016'

3.1.4 strptime()

将字符串形式的时间转换成元组形式的时间

符号 含义
%y 两位数年份(00-99 )
%Y 四位数年份(000-9999 )
%m 月份(01-12)
%d 日期 0-31
%H 24小时制小时数( 0-23 )
%I 12小时制小时数( 01-12 )
%M 分钟数(00-59)
%S 秒(00-59)
%a 本地星期简化名称
%A 本地星期完整名称
%b 本地月份简化名称
%B 本地月份完整名称
%c 本地相应的日期表示和时间表示
%j 年内的第几天(001-366)
%p 本地A.M.或 P.M.
%U 一年中的星期数(00-53),星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53),星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区名称
%% %号
>>> import time
>>> time.strptime('20160821','%Y%m%d')
time.struct_time(tm_year=2016, tm_mon=8, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=234, tm_isdst=-1)

3.1.5 strftime()

将元组形式的字符串按照指定格式转换成字符串形式

>>> import time
>>> time.strftime('%Y%m%d',(2016,8,21,0,0,0,6,234,0))
'20160821'

3.1.6 mktime()

讲元组形式的时间转换成从19700101累计的秒数

>>> import time
>>> time.mktime((2016,8,21,0,0,0,6,234,0))
1471708800.0

3.2 Eirc与Qt Designer的使用

本部分结合项目编写一起讲解。

3.3Qt中添加matplotlib组件窗口

在Qt中添加matplotlib组件窗口需要创建一个新的类mplwidget,在这个类中创建matplotlib的画布,然后在Qt designer中添加一个普通的Widget,然后将这个widget提升为我们所建的类mplwidget。

4.项目编写

4.1 创建项目

  1. 打开Eric,单击菜单栏【项目】-【新建】
  2. 输入“项目名称”,选择“项目文件夹”,点击【OK】

    4.2创建窗体

  3. 在Eric“项目浏览器”的“窗体”中,单击右键,选择【新建窗体】
  4. 选择窗体类型“主窗口”,点击【OK】
  5. 输入窗体文件名,点击【Save】
  6. 在项目浏览器中,右键点击新建的.ui窗体文件,选择【在Qt设计师中打开】
  7. 打开Qt Designer后,会有几个基本的窗口,你自己的窗口“MainWindow”、“窗口部件盒”、“对象查看器”、“属性编辑器”,其他的窗口可从菜单栏“视图”窗口选择。
    拖拽“MainWindows”设置窗口的初始大小
    从“窗口部件盒”拖4个Widget到“MainWindow”
  8. 在“MainWindow”4个Widget以外的地方单击右键,选择【布局】-【水平布局】
  9. 在一个Widget上单击右键,选择【提升为】
  10. 在“提升的类名称”中输入要创建的自定义的widget类名称,点击【添加】
  11. 选中“提升的类”中新建的那个类,点击【提升】
  12. 选中Widget组件,在右侧的“属性编辑器”中将objectName改为mpl···Widget
  13. 保存文件,退出Qt Designer。
  14. 右击Eric“项目浏览器”中的.ui窗体文件,选择【编译窗体】,生成文件Ui_countdownmainwindow.py
  15. 打开生成的文件,将from mplpiewidget import MplPieWidget 剪切至class Ui_MainWindow(object):上面,保存文件。

    4.4 自定义Widget类的编写

  • 单击Eric工具栏新建按钮,创建一个空白文档,保存为名为‘mplpiewidget.py’的文件。
  • 伪代码
# 导入PyQt5的图形界面组件模块QtGui,非图形类模块QtCore,基础界面控件模块QtWidg
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python之路 下一篇用VSCode写python的正确姿势

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目