PyQt实现计数器的方法示例


Posted in Python onJanuary 18, 2021

1、PyQt介绍

PyQt是python的GUI框架之一,这是一个跨平台的UI框架,即可以运行在windows、Linux、Mac上,可以用来替换Python内置的TKinter。

PyQt支持Python2.x和Python3.x。而Qt是Digia公司的产品,是一个跨平台的C++GUI开发框架,也支持python,

目前Qt逐步取代MFC,成为大多数公司开发GUI程序的主要选择,其丰富的类库和一份代码不同编译的跨平台性,

使得Qt成为桌面客户端开发者很有必要去学习和掌握的框架。

下面是通过pyqt实现的计数器,从0开始计数,到60归0,重新开始计数,支持暂停。通过这个demo,

可以快速熟悉pyqt如何引入qt的模块和类,以及如何使用Qt独特的信号槽机制。

2、界面效果

PyQt实现计数器的方法示例

1、安装环境

打开cmd,通过pip3安装PyQt5(这里假定已经安装了python和pycharm)

PyQt实现计数器的方法示例

安装pyqt5-tools

PyQt实现计数器的方法示例

如果出现以下错误,重新安装即可

PyQt实现计数器的方法示例

3、主要代码

1、引入相关模块

引入待会需要使用的qt模块。QtWidgets是界面布局和控件相关,QtCore是主要使用的类,比如以上的QTimer定时器类。

from PyQt5.QtWidgets import QWidget,QPushButton,\
  QLabel,QVBoxLayout, QHBoxLayout,QApplication,QLCDNumber
from PyQt5.QtCore import QTimer

2、初始化界面布局和关联信号槽,设置窗口的标题和显示的位置​​​​​​​

class Form(QWidget):
 
  def __init__(self):
    super().__init__()
 
    self.lable = QLabel("计时")
    self.timer = QTimer(self)
    self.lcd = QLCDNumber(self)
    self.startBtn = QPushButton('开始计时')
    self.stopBtn = QPushButton('暂停')
    self.startBtn.clicked.connect(self.startTimer)
    self.stopBtn.clicked.connect(self.stopTimer)
 
    vLayout = QVBoxLayout()
    hLayout = QHBoxLayout()
 
    vLayout.addWidget(self.lcd)
    hLayout.addWidget(self.startBtn)
    hLayout.addWidget(self.stopBtn)
    vLayout.addLayout(hLayout)
 
    self.setLayout(vLayout)
    self.timer.timeout.connect(self.showNum)
 
    self.setGeometry(300,300,400,300)
    self.setWindowTitle("Stopwatch")
    self.num = 0

这里把开始计数和暂停按钮通过水平布局放置,再和QLCDNumber进行垂直布局。然后通过connect设置对应的信号与槽的连接。

4、全部代码(拷贝即可运行)​​​​​​​

import sys
from PyQt5.QtWidgets import QWidget,QPushButton,\
  QLabel,QVBoxLayout, QHBoxLayout,QApplication,QLCDNumber
from PyQt5.QtCore import QTimer
 
 
class Form(QWidget):
 
  def __init__(self):
    super().__init__()
 
    self.lable = QLabel("计时")
    self.timer = QTimer(self)
    self.lcd = QLCDNumber(self)
    self.startBtn = QPushButton('开始计时')
    self.stopBtn = QPushButton('暂停')
    self.startBtn.clicked.connect(self.startTimer)
    self.stopBtn.clicked.connect(self.stopTimer)
 
    vLayout = QVBoxLayout()
    hLayout = QHBoxLayout()
 
    vLayout.addWidget(self.lcd)
    hLayout.addWidget(self.startBtn)
    hLayout.addWidget(self.stopBtn)
    vLayout.addLayout(hLayout)
 
    self.setLayout(vLayout)
    self.timer.timeout.connect(self.showNum)
 
    self.setGeometry(300,300,400,300)
    self.setWindowTitle("Stopwatch")
    self.num = 0
 
  def showNum(self):
    self.lcd.display(self.num)
    self.num=self.num+1
    if(self.num==60):
      self.num=0
 
  def startTimer(self):
    self.timer.start(1000)
 
  def stopTimer(self):
    self.timer.stop()
 
if __name__ == '__main__':
  app = QApplication(sys.argv)
  form = Form()
  form.show()
  sys.exit(app.exec_())

通过短短50行代码(还可以优化),就可以实现一个简单的计数器,python就是那么简洁,再搭配跨平台的Qt,可谓如虎添翼。

不过想更快的掌握pyqt,还需要去学习一下qt的使用和常用的类,才能做出更多有趣的东西。

到此这篇关于PyQt实现计数器的方法示例的文章就介绍到这了,更多相关PyQt 计数器内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python 随机生成中文验证码的实例代码
Mar 20 Python
python fabric实现远程操作和部署示例
Mar 25 Python
Django实现自定义404,500页面教程
Mar 26 Python
Python列表和元组的定义与使用操作示例
Jul 26 Python
Python编程实现使用线性回归预测数据
Dec 07 Python
python批量修改图片大小的方法
Jul 24 Python
对python中的argv和argc使用详解
Dec 15 Python
Python 函数返回值的示例代码
Mar 11 Python
Django自定义全局403、404、500错误页面的示例代码
Mar 08 Python
python代码xml转txt实例
Mar 10 Python
python中的split、rsplit、splitlines用法说明
Oct 23 Python
matlab xlabel位置的设置方式
May 21 Python
Python实现邮件发送的详细设置方法(遇到问题)
Jan 18 #Python
Python实现一个论文下载器的过程
Jan 18 #Python
利用python为PostgreSQL的表自动添加分区
Jan 18 #Python
如何查看python关键字
Jan 17 #Python
Python日志打印里logging.getLogger源码分析详解
Jan 17 #Python
Python中的面向接口编程示例详解
Jan 17 #Python
Python学习之time模块的基本使用
Jan 17 #Python
You might like
2.PHP入门
2006/10/09 PHP
php全局变量和类配合使用深刻理解
2013/06/05 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
PHP设计模式之原型模式定义与用法详解
2018/04/03 PHP
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
jQuery计算textarea中文字数(剩余个数)的小程序
2013/11/28 Javascript
JavaScript中的数组操作介绍
2014/12/30 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
2016/10/27 Javascript
JavaScript数据结构链表知识详解
2016/11/21 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
JS优化与惰性载入函数实例分析
2017/04/06 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
2017/08/16 Javascript
socket在egg中的使用实例代码详解
2019/05/30 Javascript
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
js实现移动端轮播图滑动切换
2020/12/21 Javascript
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
python3 模拟登录v2ex实例讲解
2017/07/13 Python
Python计算斗牛游戏概率算法实例分析
2017/09/26 Python
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
python——全排列数的生成方式
2020/02/26 Python
python将音频进行变速的操作方法
2020/04/08 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)
2013/06/06 HTML / CSS
不同浏览器创建XMLHttpRequest方法有什么不同
2014/11/17 面试题
高分子材料与工程专业推荐信
2013/12/01 职场文书
中职生自荐信范文
2014/06/15 职场文书
迎国庆演讲稿
2014/09/05 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书
详解python字符串驻留技术
2021/05/21 Python
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS