PyQt5零基础入门(十)——数字显示控件

news2024/11/15 19:32:17

前言

在PyQt中,可以使用QLCDNumber控件来显示数字。QLCDNumber控件是一个用于显示数字的小部件,模拟了真实的液晶数字显示屏。这个控件主要用于显示数字,如计时器、状态指示等。QSpinBox和QDoubleSpinBox是PyQt中用于输入和显示数字的控件。这两个控件非常相似,但QDoubleSpinBox用于显示和输入浮点数,而QSpinBox用于显示和输入整数。

液晶数字控件(QLCDNumber)

使用QLCDNumber控件,可以通过设置最大显示数字位数、显示样式及模式等属性来控制数字的显示方式。例如,通过setDigitCount()方法设置最大显示数字位数,通过setMode()方法设置显示模式(如十进制、十六进制等),通过setSegmentStyle()方法设置数字显示屏的显示样式(如实心、空心、平铺等)。

from PyQt5.QtWidgets import *
import sys


class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.lcd1 = QLCDNumber()
        self.lcd1.setDigitCount(5)  # 设置最大显示长度
        self.lcd1.display(12345)  # 设置显示内容
        self.lcd1.setMode(QLCDNumber.Hex)  # 设置数字的进制

        self.lcd2 = QLCDNumber()
        self.lcd2.setDigitCount(5)  # 设置最大显示长度
        self.lcd2.display(12345)  # 设置显示内容
        self.lcd2.setMode(QLCDNumber.Dec)  # 设置数字的进制

        self.lcd3 = QLCDNumber()
        self.lcd3.setDigitCount(5)  # 设置最大显示长度
        self.lcd3.display(12345)  # 设置显示内容
        self.lcd3.setMode(QLCDNumber.Oct)  # 设置数字的进制
        self.lcd3.setSegmentStyle(QLCDNumber.Outline)

        self.lcd4 = QLCDNumber()
        self.lcd4.setDigitCount(15)  # 设置最大显示长度
        self.lcd4.display(12345)  # 设置显示内容
        self.lcd4.setMode(QLCDNumber.Bin)  # 设置数字的进制
        self.lcd4.setSegmentStyle(QLCDNumber.Filled)

        self.lcd5 = QLCDNumber()
        self.lcd5.setDigitCount(5)
        self.lcd5.display(0.1234)
        self.lcd5.setSegmentStyle(QLCDNumber.Flat)  # 设置样式

        self.lcd6 = QLCDNumber()
        self.lcd6.setDigitCount(5)
        self.lcd6.display(123456789)

        self.lcd7 = QLCDNumber()
        self.lcd7.display('HELLO')

        v_layout = QVBoxLayout()
        v_layout.addWidget(self.lcd1)
        v_layout.addWidget(self.lcd2)
        v_layout.addWidget(self.lcd3)
        v_layout.addWidget(self.lcd4)
        v_layout.addWidget(self.lcd5)
        v_layout.addWidget(self.lcd6)
        v_layout.addWidget(self.lcd7)

        self.setLayout(v_layout)


if __name__ == "__main__":
    app = QApplication([])
    win = Window()
    win.show()
    sys.exit(app.exec())

在上述代码中使用setMode来设置显示进制

常量描述
QLCDNumber.Hex16进制
QLCDNumber.Dec10进制
QLCDNumber.Oct8进制
QLCDNumber.Bin2进制

同时还使用了setSegmentStyle来设置显示样式

常量描述
QLCDNumber.Outline片段凸起,并用背景颜色填充
QLCDNumber.Filled(默认)片段凸起,并用前景颜色填充
QLCDNumber.Flat片段扁平,并用背景颜色填充

需要注意的是液晶数字控件还可以显示字母,如self.lcd7所示。但是需要清楚的是该控件只能显示A,B,C,D,E,F,h,H,L,o,P,r,u,U,Y,O/0,S/5,g/9。

运行结果如下:
在这里插入图片描述

数字调节框控件(QSpinBox和QDoubleSpinBox)

QSpinBox和QDoubleSpinBox都有以下几个重要的属性:

属性作用
value获取或设置控件的当前值。
minimum/maximum设置或获取控件的最小值/最大值。
singleStep设置或获取每次增加或减少的步长。
prefix和suffix在显示数字之前或之后添加文本。
wrapping如果设置为True,则当达到最小值或最大值时,可以通过继续旋转来回到另一个端点。

使用这两个控件,用户可以通过旋转或点击来选择一个数字值。这对于需要用户输入特定范围数字的应用程序非常有用,例如,调整大小、颜色强度等。

from PyQt5.QtWidgets import *
import sys


class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.spinbox = QSpinBox()
        self.spinbox.setRange(-99, 99)
        self.spinbox.setSingleStep(2)
        self.spinbox.setValue(66)
        self.spinbox.setPrefix('$')
        self.spinbox.valueChanged.connect(self.show_spinbox_value)

        self.db_spinbox = QDoubleSpinBox()
        self.db_spinbox.setRange(-99.99, 99.99)
        self.db_spinbox.setSingleStep(1.5)
        self.db_spinbox.setValue(66.66)
        self.db_spinbox.setSuffix('kg')
        self.db_spinbox.valueChanged.connect(self.show_db_spinbox_value)

        v_layout = QVBoxLayout()
        v_layout.addWidget(self.spinbox)
        v_layout.addWidget(self.db_spinbox)
        self.setLayout(v_layout)

    def show_spinbox_value(self):
        print(self.spinbox.value())

    def show_db_spinbox_value(self):
        print(self.db_spinbox.value())


if __name__ == '__main__':
    app = QApplication([])
    win = Window()
    win.show()
    sys.exit(app.exec())

运行结果如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1431210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ele-h5项目使用vue3+vite+vant4开发:第四节、业务组件-SearchView组件开发

需求分析 展示切换动画搜索框输入文字&#xff0c;自动发送请求搜索结果展示搜索状态维护历史搜索展示&#xff0c;点击历史搜索后发送请求历史搜索更多切换动画效果 <script setup lang"ts"> import OpSearch from /components/OpSearch.vue import { ref } f…

React Hooks 学习笔记

1.useState&#xff08;&#xff09; 实现对页面数据的存储&#xff0c;当数据改变时候&#xff0c;自动触发render函数 2.useRef 用来解决两个问题&#xff1a; 1).是获取DOM元素或子组件的实例对象 2).存储渲染周期之间共享的数据 3.useEffect 4.useLayoutEffect 5…

IDEA 配置以及一些技巧

1. IDEA设置 1.1 设置主题 1.2 设置字体和字体大小 1.3 编辑区的字体用ctrl鼠标滚轮可以控制大小 1.4 自动导包和优化多余的包 1.5 设置编码方式 1.6 配置 maven 1.7 设置方法形参参数提示 1.8 设置控制台的字体和大小 注意&#xff1a;设置控制台字体和大小后需要重启IDEA才会…

90.网游逆向分析与插件开发-游戏窗口化助手-项目需求与需求拆解

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;实现物品使用策略的功能-CSDN博客 项目需求&#xff1a; 在游戏窗口化时&#xff0c;可以在游戏之外弹出一个窗口&#xff0c;可以隐藏或者显示游戏窗口&#xff0c;显示游戏人物的基本状态&#xff…

【Springcloud篇】学习笔记九(十五、十六章):Cloud Alibaba介绍、Nacos服务注册、服务配置中心

第十五章_Cloud Alibaba简介 1.出现SpringCloud Alibaba的原因 SpringCloud Netflix项目进入维护模式 技术的发展 2.SpringCloud Alibaba简介 2.1是什么 2.2能干嘛 2.3去哪下 阿里巴巴中文文档下载网站&#xff1a; spring-cloud-alibaba/README-zh.md at 2022.x alibaba…

js获取文件名或文件后缀名(扩展名)的几种方法

有时候我们需要通过含有文件名和后缀名的一个字符串中提取出该文件的文件名或文件后缀名&#xff08;扩展名&#xff09;&#xff0c;可以通过如下几种方式进行截取。 例如文件名为: var fileName"12345.txt"; 方式一&#xff1a;subtring() 用法参考博文 【js截取字…

深度学习驱动下的自然语言处理进展及其应用前景

文章目录 每日一句正能量前言技术进步应用场景挑战与前景自然语言处理技术当前面临的挑战未来的发展趋势和前景 伦理和社会影响实践经验后记 每日一句正能量 一个人若想拥有聪明才智&#xff0c;便需要不断地学习积累。 前言 自然语言处理&#xff08;NLP&#xff09;是一项正…

查看自己电脑是arm还是x64(x86);linux操作系统识别

1、查看自己电脑是arm还是x64&#xff08;x86&#xff09; linux 参考&#xff1a; https://liuweiqing.blog.csdn.net/article/details/131783851 uname -a如果输出是 x86_64&#xff0c;那么你的系统是 64 位的 x86 架构&#xff08;通常我们称之为 x64&#xff09;。如果…

Jmeter 基于Docker 实现分布式测试

基于Docker 实现分布式测试 制作Jmeter基础镜像制作工作节点镜像启动工作节点启动控制节点遇到的问题 使用Docker 部署Jmeter非常方便&#xff0c;可以省略软件的安装以及配置&#xff0c;比如jdk、jmeter。需要部署多个工作节点可以节省时间。 控制节点&#xff08;Master-主节…

nodejs+vue+ElementU教师科研管理系统l33wm

本次开发一套高校教师科研管理系统有管理员&#xff0c;教师&#xff0c;学院三个角色。管理员功能有个人中心&#xff0c;教师管理&#xff0c;学院管理&#xff0c;科研课题管理&#xff0c;软件著作权管理&#xff0c;论文信息管理&#xff0c;专利信息管理&#xff0c;科研…

QXlsx Qt操作excel(1)

QXlsx 是一个用于处理Excel文件的开源C库。它允许你在你的C应用程序中读取和写入Microsoft Excel文件&#xff08;.xlsx格式&#xff09;。该库支持多种操作&#xff0c;包括创建新的工作簿、读取和写入单元格数据、格式化单元格、以及其他与Excel文件相关的功能。 关于QXlsx的…

[office] 在Excel2010中设定某些单元格数据不参与排序的方法介绍 #其他#知识分享#笔记

在Excel2010中设定某些单元格数据不参与排序的方法介绍 在Excel中排序&#xff0c;相信大家都会了&#xff0c;直接将一组数据按照从小到大或者从大到小进行排序&#xff0c;但是&#xff0c;现在要求我们规定其中几组数据不进行排序&#xff0c;只排序其余的部分。又该如何操作…

电源模块欠压保护点测试方法分享 纳米软件

电源欠压保护原理 欠压保护是指当电源电压低于一定值时&#xff0c;电源的保护功能会及时断开电路&#xff0c;避免设备受到损坏。电源欠压保护一般是通过一个或多个传感器来检测电压&#xff0c;当电压低于设定值时就会触发电源的保护功能&#xff0c;断开电路&#xff0c;保护…

树莓派-Ubuntu22.04

树莓派 1 安装Ubuntu系统2 ssh登录3 配置3.1 安装软件3.2 换源3.3 安装桌面3.4 开机脚本 1 安装Ubuntu系统 通过制作sdk&#xff0c;使系统在sdk中运行&#xff1a; 下载制作软件&#xff1a;https://www.raspberrypi.com/software/ 下载Ubuntu镜像&#xff1a;https://cn.ub…

Spring事件之注解@EventListener讲解

文章目录 1 注解EventListener1.1 示例Demo1.1.1 简单例子1.1.2 解耦1.1.3 Spring事件 1.2 深入EventListener1.2.1 debug调试1.2.2 问题一&#xff1a; Spring是怎么知道要去触发这个方法1.2.3 问题二&#xff1a;ApplicationListenerMethodAdapter1.2.4 问题三&#xff1a;Si…

(Python)列表字典数据本地存储工具

一个简单的实现简便 "列表字典" 数据存储本地。 适合不会SQL但又想实现数据存储本地的同学。 操作使用都非常简单。 文件只做了简单的加密处理&#xff0c;如果需要复杂加密的同学可以修改加密函数。 感兴趣并且动手能力强的同学&#xff0c;可以把它封装成工具类…

Linux Centos stream9 mdadm

RAID(Redundant Array of Independent Disk独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出&#xff0c;最初是为了组合小的廉价磁盘来代替大的昂贵磁盘&#xff0c;同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁…

Fink CDC数据同步(二)MySQL数据同步

1 开启binlog日志 2 数据准备 use bigdata; drop table if exists user;CREATE TABLE user(id INTEGER NOT NULL AUTO_INCREMENT,name VARCHAR(20) NOT NULL DEFAULT ,birth VARCHAR(20) NOT NULL DEFAULT ,gender VARCHAR(10) NOT NULL DEFAULT ,PRIMARY KEY(id) ); ALTER TA…

vite打包原理

vite 工程化开发&#xff1a;打包工具 启动速度很快 核心原理还是webpack 把webpack封装了&#xff0c;把webpack对象封装了 和vue2整体结构几乎一致 webpack两种模式&#xff1a;开发&生产 代码打包编译&#xff0c;本地起一个web服务器实时预览编译后的结果 build 命令模…

Spark 开启动态资源分配

一 为什么要开启动态资源分配 ⽤户提交Spark应⽤到Yarn上时&#xff0c;可以通过spark-submit的num-executors参数显示地指定executor个数&#xff0c;随后&#xff0c; ApplicationMaster会为这些executor申请资源&#xff0c;每个executor作为⼀个Container在Yarn上运⾏。 S…