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、界面效果
1、安装环境
打开cmd,通过pip3安装pyqt5(这里假定已经安装了python和pycharm)
安装pyqt5-tools
如果出现以下错误,重新安装即可
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 计数器内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/596128.html