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

本文介绍了PyQt中QLCDNumber控件用于显示数字,包括设置位数、进制和样式,以及QSpinBox和QDoubleSpinBox用于输入和显示数字的属性和用途。展示了如何在实际代码中使用这些控件进行操作。
摘要由CSDN通过智能技术生成

前言

在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())

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艾醒(AiXing-w)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值