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 年春节的剩余时间,并用液晶显示控件显示剩余时间。

40- 输入和显示- 液晶显示控件QLCDNumber_第1张图片

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

你可能感兴趣的:(#,pyside6,Python,GUI,qt,开发语言,python)