python

python图形用户界面(四):教你实现一个简单实用的计时器

2020-03-27  本文已影响0人  叶子陪你玩

今天就利用PySide2实现一个可以计时功能的小程序。下面是它的实际运行效果动图。

计时器.gif

实现步骤:

1.设计UI界面 timer.ui

2.利用转化工具 将timer.ui转换成 ui_timer.py文件

3.初始化界面程序

4.实现设置时间功能

5.实现开始计时功能

1.设计UI界面 timer.ui

根据功能,我们需要一个显示时间的部件,这里采用的是LCD Number显示部件,两个功能按钮选用的都是pushButton部件,完成好保存到桌面上。

预览效果

2.利用转化工具 将timer.ui转换成 ui_timer.py文件

利用pyside2-uic工具将ui文件转换成py文件。

转化后的ui_timer.py代码,省去了我们手写代码布局实现了,非常方便:

3.初始化界面程序

这里将ui_timer当作模块导入,里面有个Ui_Timer类,创建主窗体对象window和ui界面对象timer,最后显示窗体,运行程序就出现了之前的计时UI界面了。

上面是以面向过程的方法实现了,下面将其改成面向对象的方法,便于我们组织管理代码和添加新功能。

初始化开始数字为0。

4.实现设置时间功能

导入QInputDialog输入对话框,添加一个timerReset方法设置时间。在setup方法中需要将按钮的点击事件与设置时间的方法先绑定,这样当触发按钮时,就会调用timerReset方法了。

设置时间.gif

5.实现开始计时功能

计时功能相对比较复杂一点,因为我们需要有实际的计时功能,同时又要保证lcd显示器上的数字变化。为了实现计时功能,这里从此那个QtCore核心模块中导入QTimer计时方法,同时在QtWidget中导入了QMessageBox消息弹窗框方法。

现在setup设置一些初始变量和创建一个timer的计时器,绑定开始按钮和timerStart方法。

点击开始后需要设置按钮禁用模式通过setEnabled方法,之后开始计时功能,里面的1000是ms,也就是1s后回去调用nextSecond方法,在nextSecond方法中,我们需要先判断当前的时间是否为0了,如果为0,就停止计时,同时弹出时间到的消息提醒窗口,否则就每次数值显示减1,同时不断重复调用自己。

完成代码:

(全文完)


长按二维码,加关注!叶子陪你玩

欢迎转载,转载请注明出处!

欢迎关注公众微信号:叶子陪你玩编程
分享自己的python学习之路

上一篇下一篇

猜你喜欢

热点阅读