40- 输入和显示- 液晶显示控件QLCDNumber

液晶显示控件QLCDNumber

液晶显示控件QLCDNumber 用来显示数字和一些特殊符号,常用来显示数值日期和时间。可以显示的数字和符号有 O0123456789-g.(小数点)、A,B,CDEFhHLoPruUY:'度数(在字符串中用单引号表示)和空格。QLCDNumber将非法字符换为空格。
用QLCDNumber 类创建实例对象的方法如下所示其中参数如下,QLCDNumber 是从 QFrame类继承而来的。

  • parent 是控件所在的窗体或容器控件,
  • numDigits是能显示的数字个数。
from PySide6.QtWidgets import QLCDNumber

QLCDNumber(numDigits: int,parent: Union[PySide6.QtWidgets.QWidget,NoneType]=None)-> None
QLCDNumber(parent: Union[PySide6.QtWidgets.QWidget,NoneType]=None)-> None

液晶显示控件OLCDNumber的常用方法

液晶显示控件QLCDNumber 的常用方法如表所示。

由于液晶显示控件是从QFrame类继承来的,因而可以设置液晶显示控件的边框样式,如凸起、凹陷、平面等,液晶显示控件的主要方法介绍如下。

  • 用setDigitCount(int)方法设置液晶显示控件的最大显示数字个数,包括小数点。

  • 用display(str)display(float)和 display(int)方法分别显示字符串、浮点数和整数显示的内容只能是O0123456789-g.(小数点)、A,B,CDEFhHLoPruUY:'度数(在字符串中用单引号表示)和空格,如果显示的整数部分长度超过了允许的最大数字个数则会产生溢出,溢出时会发送overflow()信号。

    • 可以用checkOverflow(float)和checkOverflow(int)方法检查浮点数和整数值是否会溢出,
    • 用intValue()和 value()方法可以分别返回整数和浮点数如果显示的是整数,
    • 以用setMode(QLCDNumber.Mode)方法将整数转换成二进制、八进制和十六进制显示,其中参数 QLCDNumber.Mode可以取以下值。也可以使用setDecMode()、setHexMode()、setOctMode(),setBinMode()方法设置
      • QLCDNumber.Hex 十六进制
      • QLCDNumber.Dec 十进制
      • QLCDNumber.Oct 八进制
      • QLCDNumber.Bin 二进制
    • 用setSegmentStyle(QLCDNumber.SegmentStyle)方法可以设置液晶显示器的外观,其中参数QLCDNumber.SegmentStyle可以取:
      • QLCDNumber.Outline(用背景色显示数字,只显示数字的轮廓)
      • QLCDNumber。Filled(用窗口的文字颜色显示文字)
      • QLCDNumber.Flat(平面,没有凸起效果)。
    QLCDNumber的方法及参数类型返回值的类型说明
    setDigitCount(int)None设置可以显示的数字个数
    digitCount()int获取可以显示的数字个数
    setSegmentStyle(QLCDNumber.SegmentStyle)None设置外观显示样式
    [slot]display(str:str)None显示字符串
    [slot]display(num:float)None显示浮点数
    [slot]display(num:int)None显示整数
    checkOverflow(float)bool取浮点数是否会溢出
    checkOverflow(int)bool获取整数是否会溢出
    intValue()int按四舍五入规则返回整数值,老 显示的不是数值,则返回0
    value()float返回浮点数值
    setMode(QLCDNumber.Mode)None设置数字的显示模式
    [slot]setDecMode()None转成十进制显示模式
    [slot]setHexMode()None转成十六进制显示模式
    [slot]setOctMode()None转成八进制显示模式
    [slot]setBinMode()None转成二进制显示模式
    [slot]setSmallDecimalPoint(bool)None设置小数点的显示是否占用一位

液晶显示控件OLCDNumber的信号

液晶显示控件QLCDNumber 只有一个信号overflow(),当显示的整数部分长度超过了允许的最大数字个数时发送信号。

液晶显示控件QLCDNumber的应用实例

下面的程序从本机上读取时间,计算到 2024 年春节的剩余时间,并用液晶显示控件显示剩余时间。

image-20230226020001934

import sys
from PySide6.QtWidgets import QApplication,QWidget,QLabel,QLCDNumber
from PySide6.QtCore import QTimer,QDateTime


class MyWindow(QWidget):

    def __init__(self,parent=None):
        super().__init__(parent)
        self.setWindowTitle("ICD Number")
        self.resize(500,200)
        self.label=QLabel("距离2030年春节还有:",self)
        font=self.label.font()
        font.setPointSize(20)

        self.label.setFont(font)
        self.label.setGeometry(100,50,300,50)

        self.LcdNumber=QLCDNumber(13,self)

        self.LcdNumber.setGeometry(100,100,300,50)
        self.sprintDay=QDateTime(2030,2,2,0,0,0)# 2030年春节时间
        self.timer=QTimer(self)

        self.timer.setInterval(1000)

        self.timer.timeout.connect(self.change)

        self.timer.start()

    def change(self):
        self.current=QDateTime.currentDateTime()# 获取系统的当前日期时间

        seconds=self.current.secsTo(self.sprintDay)# 计算到目的日期的秒数
        days=seconds //(3600 * 24)# 计算剩余天
        hours=(seconds - days * 3600 * 24)// 3600  # 计算剩余小时
        minutes=(seconds - days * 3600 * 24 - hours * 3600)// 60  # 计算剩余分钟
        seconds=seconds - days * 3600 * 24 - hours * 3600 - minutes * 60  # 计算剩余秒

        string="{:03d}:{:02d}:{:02d}:{:02d}".format(days,hours,minutes,seconds)

        self.LcdNumber.display(string)


if __name__=='__main__':
    app=QApplication(sys.argv)
    win=MyWindow()

    win.show()
    sys.exit(app.exec())

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

士别三日,当挖目相待

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

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

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

打赏作者

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

抵扣说明:

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

余额充值