PyQt5快速上手基础篇2-按钮控制LCD屏显示

前言

上一节我们完成了PyQt5开发环境搭建,本节开始我们正式进入PyQt5的世界,首先我给大家介绍下QT的信号与槽,然后利用这一特点完成点击按钮触发LCD屏显示功能。

一、基础知识

1. PyQt5信号与槽简介

信号与槽是QT中的核心机制,也是PyQt5中对象直接进行通信的机制,当一个信号释放的时候,连接的槽函数会自动执行,比如点击/释放按钮都可以触发槽函数。

信号与槽特点如下:

(1) 一个信号可以连接多个槽函数
(2) 一个槽可以监听多个信号
(3) 一个信号可以连接另一个信号
(4) 信号与槽连接可以在不同线程间进行

PyQt5中信号与槽一共有两种使用方法:内置信号与槽、自定义信号与槽;信号与槽通过connect()连接,通过disconnect()函数解除绑定,本文我们学习使用PyQt内置的信号与槽。

2. PyQt5中QPushButton介绍

PyQt5中普通按钮是一个QPushButton也是,用户界面中最常用的窗口小部件,它的基类是QAbstracButton类,具有如下通用用法:

QPushButton类,用法如下:

3. PyQt中QLCDNumber介绍

QLCDNumber控件用于显示一个带有类似液晶显示屏效果的数字,该控件使用到的主要函数如下:

二、实例

  1. QT Desinger设计UI

打开designer.exe,使用默认的Main Window创建,直接点击Create按钮即可

设计UI图如下,并保存为btn.ui

2. 将btn.ui转换成ui_btn.py

进入ui_test.py目录,输入如下命令:
pyuic5 -o ui_test.py test.ui

3. 程序分析

程序实现的功能是当点击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.总结:

本节完,实际操作过程中需要注意的地方有如下几点:

(1)python版本

注意,本系列PyQt教程,采用python3.6.6,建议和我保持一致。

(2)安装PyQt5和PyQt5_tools

注意选择国内安装源,速度比较快

2.后记:

如您在使用过程中有任何问题,请加QQ群进一步交流,也可以github提Issue。

QQ交流群:906015840 (备注:物联网项目交流)

github仓库地址:https://github.com/solitary-sand/pyqt5/

一叶孤沙出品:一沙一世界,一叶一菩提

原文地址:https://blog.51cto.com/14616151/2465111

时间: 2024-10-25 20:13:50

PyQt5快速上手基础篇2-按钮控制LCD屏显示的相关文章

PyQt5快速上手基础篇4-将lineEdit输入框数据同步显示再label和LCD屏上面

前言 本节我们将介绍lineEdit的使用方法,同时将输入框输入的数据同步显示再label和LCD屏幕上面. 一.基础知识 1. lineEdit简介 lineEdit是文本框,可以输入和显示文本信息,同时可以设置显示格式和文本框属性,其主要函数说明如下 常用信号如下 二.实例 1. QT Designer设计UI 打开designer.exe,使用默认的Main Window创建,直接点击Create按钮即可 设计UI图如下,并保存为edit.ui 2 将edit.ui转换为ui_edit.p

PyQt5快速上手基础篇1-开发环境搭建

前言 最近收到公司的一个基于PyQt的项目任务,由于UI界面比较复杂,最终选择了PyQt,本文我将带领大家学习Pyqt的环境搭建. 一.基础知识 1.PyQt简介 众所周知,Qt库是最强大的GUI库之一,不过他使用C++来开发的,作为一名Python爱好者,PyQt将是开发桌面应用程序一个极好的选择,笔者之前文章有介绍tkinter,那是Python内置的工具,比较轻量便捷,不过比较痛苦的是需要自己写代码设计UI,PyQt的一个很大的好处就在于可以使用Qt Designer设计UI界面,对于复杂

pyqt5快速上手基础篇6-QStackedWidget实现导航布局

前言 本节我们使用QT Designer.exe设计stackedWidget实现导航功能. 一.基础知识 1. QStackedWidget简介 QStackedWidget,叫做堆载窗口控件,可以添加多个page,每个page显示不同的内容,页面中使用这个功能,可以再共同一区域在不同条件下显示不同内容,方便开发使用,关于API本文不做过多介绍,我们使用QT设计师来设计StackedWdiget,只需要了解调用QStackedWidget.setCurrentindex(index)可以显示不

cocos2dx基础篇(13)——按钮控件CCControlButton

[引言] 按钮类CCControlButton继承于控件类CCControl. 控件类CCControl主要向子类提供了一系列的控件触发事件.当子控件触发相关的事件后,就会执行相关的控件事件回调函数.这与之前讲的CCMenu中的菜单按钮回调是类似的. 控件类CCControl主要有三个子类: (1)开关控件CCControlSwitch (2)滑块控件CCControlSlider (3)按钮控件CCControlButton 本节讲的是其子类其中之一:按钮类CCControlButton. [

给深度学习入门者的Python快速教程 - 基础篇

实在搞不定博客园的排版,排版更佳的版本在: https://zhuanlan.zhihu.com/p/24162430 Life is short, you need Python 人生苦短,我用Python -- Bruce Eckel 5.1 Python简介 本章将介绍Python的最基本语法,以及一些和深度学习还有计算机视觉最相关的基本使用. 5.1.1 Python简史 Python是一门解释型的高级编程语言,特点是简单明确.Python作者是荷兰人Guido van Rossum,1

python 学习之 基础篇三 流程控制

前言: 一. python中有严格的格式缩进,因为其在语法中摒弃了“{}”来包含代码块,使用严格的缩进来体现代码层次所以在编写代码的时候项目组要严格的统一器缩进语法,一个tab按键设置为四个空格来缩进,防止缩进不规范导致的启动失败. 二.在python中变量(标识符)命名和一般的高级语言没有什么不同都推荐使用,字母.下划线.数字命名,其中数字不能作为标识符的开头,python中变量名是区分大小写的(所以可以使用驼峰命名法去命名,也就是英文单词的字母首字母大写其余的小写).以下划线开头的标识符是有

传智的光辉岁月-C#基础篇三流程控制1

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P01Review { class Program { //全局变量如果没有初始化也没有复制,那么编译器会给它默认值: // 数值类型默认值:0 // bool 默认值:false // string 默认值:null //1.2全局变量(类的成员变量) static int count; static v

传智的光辉岁月-C#基础篇三流程控制2

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P01ReviewAndWhile { class Program { static void Main(string[] args) { //Reg(); MulLoop(); Console.ReadLine(); } #region 9.2 多重循环练习:注册 void Reg() //9.2 多重循

随手学和记——PHP快速上手基础

PHP是一门解释性脚本语言. 你可以在PHP文件中写HTML.CSS.JavaScript和PHP,形成一个供浏览器解释渲染的页面.你也可以用PHP作服务端语言进行逻辑处理,和连接数据库. 1.使用PHP<?php    #这里是php代码   echo "hello world";?> 2.php中函数.类.关键字大小写不敏感:所有变量都大小写敏感. 3.变量都$开头,名称以字母或下划线开头.不需要声明,首次赋值时被创建.若类型. 4.作用域   local:函数内声明