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 18 Python
详解Python Socket网络编程
Jan 05 Python
PyCharm使用教程之搭建Python开发环境
Jun 07 Python
Python如何实现MySQL实例初始化详解
Nov 06 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
Apr 10 Python
Python将文字转成语音并读出来的实例详解
Jul 15 Python
Python 实现数据结构-堆栈和队列的操作方法
Jul 17 Python
使用pyshp包进行shapefile文件修改的例子
Dec 06 Python
解决pyCharm中 module 调用失败的问题
Feb 12 Python
Python通过字典映射函数实现switch
Nov 06 Python
django项目中使用云片网发送短信验证码的实现
Jan 19 Python
python实现学员管理系统(面向对象版)
Jun 05 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
数字转英文
2006/12/06 PHP
解析func_num_args与func_get_args函数的使用
2013/06/24 PHP
php中如何同时使用session和cookie来保存用户登录信息
2013/07/05 PHP
php获取301跳转URL简单实例
2013/12/16 PHP
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
一个仿糯米弹框效果demo
2014/07/22 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
JavaScript控制table某列不显示的方法
2015/03/16 Javascript
延时加载JavaScript代码提高速度
2015/12/27 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
js中apply与call简单用法详解
2017/11/06 Javascript
Vue.js用法详解
2017/11/13 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
举例讲解Python程序与系统shell交互的方式
2015/04/09 Python
利用Python进行异常值分析实例代码
2017/12/07 Python
浅谈Django自定义模板标签template_tags的用处
2017/12/20 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
python批量读取txt文件为DataFrame的方法
2018/04/03 Python
python通过tcp发送xml报文的方法
2018/12/28 Python
阿迪达斯印度官方商城:adidas India
2017/03/26 全球购物
eBay加拿大站:eBay.ca
2019/06/20 全球购物
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
测绘工程本科生求职信
2013/10/10 职场文书
知识竞赛主持词
2014/03/26 职场文书
应届大专毕业生自我鉴定
2014/04/08 职场文书
爱与责任师德演讲稿
2014/08/26 职场文书
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
升职自荐信怎么写
2015/03/05 职场文书
讲文明倡议书
2015/04/29 职场文书
走进科学观后感
2015/06/18 职场文书
新人入职感言
2015/07/31 职场文书
《司马光》教学反思
2016/02/22 职场文书
Python pygame实现中国象棋单机版源码
2021/06/20 Python
flex布局中使用flex-wrap实现换行的项目实践
2022/06/21 HTML / CSS