上一节咱们完成了PyQt5开发环境搭建,本节开始咱们正式进入PyQt5的世界,首先我给你们介绍下QT的信号与槽,而后利用这一特色完成点击按钮触发LCD屏显示功能。python
信号与槽是QT中的核心机制,也是PyQt5中对象直接进行通讯的机制,当一个信号释放的时候,链接的槽函数会自动执行,好比点击/释放按钮均可以触发槽函数。git
信号与槽特色以下:github
(1) 一个信号能够链接多个槽函数
(2) 一个槽能够监听多个信号
(3) 一个信号能够链接另外一个信号
(4) 信号与槽链接能够在不一样线程间进行app
PyQt5中信号与槽一共有两种使用方法:内置信号与槽、自定义信号与槽;信号与槽经过connect()链接,经过disconnect()函数解除绑定,本文咱们学习使用PyQt内置的信号与槽。ide
PyQt5中普通按钮是一个QPushButton也是,用户界面中最经常使用的窗口小部件,它的基类是QAbstracButton类,具备以下通用用法:函数
QPushButton类,用法以下:学习
QLCDNumber控件用于显示一个带有相似液晶显示屏效果的数字,该控件使用到的主要函数以下:ui
打开designer.exe,使用默认的Main Window建立,直接点击Create按钮便可线程
设计UI图以下,并保存为btn.ui设计
进入ui_test.py目录,输入以下命令:pyuic5 -o ui_test.py test.ui
程序实现的功能是当点击button的时候,LCD显示屏内容会持续+1
import sys import PyQt5.QtWidgets as qw import ui_btn num = 0 if __name__ == "__main__": app = qw.QApplication(sys.argv) w = qw.QMainWindow() ui = ui_btn.Ui_MainWindow() ui.setupUi(w) ui.lcdNumber.setDecMode() #设置显示模式 # ui.lcdNumber.setStyleSheet("border:2pxsolidgreen;color:red;background:silver;") ui.lcdNumber.setSegmentStyle(ui.lcdNumber.Flat) def lcd_show(): global num num = num + 1 ui.lcdNumber.display(num) ui.pushButton.clicked.connect(lcd_show) w.show() sys.exit(app.exec_())
本节代码和上节环境搭建篇章主要不一样点在于对QpushButton和QLCDNumber的处理。
关于QPushButton,程序中使用了ui.pushButton.clicked.connect(lcd_show)关联信号与槽函数,此时信号为clicked(),对应槽函数为lcd_show(),在槽函数中调用QLCDNumber的display(num)函数显示数字
关于QLCDNumber,程序中首先调用setDecMode()函数设置显示10进制数据,而后设置显示方式为Flat,最后在pushButton对应的槽函数中显示数字。
进入文件目录,这里是进入2-btn文件夹目录,控制台输入python3 run.py,便可弹出上述用QT Designer设计出来的页面。
打开注释内容,修改LCD样式
ui.lcdNumber.setStyleSheet("border:2pxsolidgreen;color:red;background:silver;")
结果以下:
本节完,实际操做过程当中须要注意的地方有以下几点:
(1)python版本
注意,本系列PyQt教程,采用python3.6.6,建议和我保持一致。
(2)安装PyQt5和PyQt5_tools
注意选择国内安装源,速度比较快
如您在使用过程当中有任何问题,请加QQ群进一步交流,也能够github提Issue。
QQ交流群:906015840 (备注:物联网项目交流)
github仓库地址:https://github.com/solitary-sand/pyqt5/
一叶孤沙出品:一沙一世界,一叶一菩提