液晶显示控件QLCDNumber
液晶显示控件QLCDNumber 用来显示数字和一些特殊符号,常用来显示数值日期和时间。可以显示的数字和符号有 O
、0
、1
、2
、3
、4
、5
、6
、7
、8
、9
、-
、g
、.
(小数点)、A
,B
,C
、D
、E
、F
、h
、H
、L
、o
、P
、r
、u
、U
、Y
、:
、'
度数(在字符串中用单引号表示)和空格。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)方法分别显示字符串、浮点数和整数显示的内容只能是
O
、0
、1
、2
、3
、4
、5
、6
、7
、8
、9
、-
、g
、.
(小数点)、A
,B
,C
、D
、E
、F
、h
、H
、L
、o
、P
、r
、u
、U
、Y
、:
、'
度数(在字符串中用单引号表示)和空格,如果显示的整数部分长度超过了允许的最大数字个数则会产生溢出,溢出时会发送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 年春节的剩余时间,并用液晶显示控件显示剩余时间。
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())