第十一章 液晶数字显示屏QLCDNumber
《快速掌握PyQt5》专栏已整理成书出版,书名为《PyQt编程快速上手》,详情请见该链接。感谢大家一直以来的支持!祝大家PyQt用得越来越顺!
QLCDNumber控件用于显示一个带有类似液晶显示屏效果的数字。
11.1 简单示例
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLCDNumber, QVBoxLayout
class Demo(QWidget):
def __init__(self):
super(Demo, self).__init__()
self.resize(600, 600)
self.lcd_1 = QLCDNumber(self) # 1
self.lcd_1.setDigitCount(10)
self.lcd_1.display(1234567890)
self.lcd_2 = QLCDNumber(self) # 2
self.lcd_2.setSegmentStyle(QLCDNumber.Flat)
# self.lcd_2.setSmallDecimalPoint(True)
self.lcd_2.setDigitCount(10)
self.lcd_2.display(0.123456789)
self.lcd_3 = QLCDNumber(self) # 3
self.lcd_3.setSegmentStyle(QLCDNumber.Filled)
self.lcd_3.display('HELLO')
self.lcd_4 = QLCDNumber(self) # 4
self.lcd_4.setSegmentStyle(QLCDNumber.Outline)
self.lcd_4.setMode(QLCDNumber.Hex)
self.lcd_4.setDigitCount(6)
self.lcd_4.display(666)
self.v_layout = QVBoxLayout()
self.v_layout.addWidget(self.lcd_1)
self.v_layout.addWidget(self.lcd_2)
self.v_layout.addWidget(self.lcd_3)
self.v_layout.addWidget(self.lcd_4)
self.setLayout(self.v_layout)
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = Demo()
demo.show()
sys.exit(app.exec_())
1. 实例化一个QLCDNumber控件,然后通过setDiditCount()方法来设置一共可以显示多少为数字;
2. lcd_2显示浮点型数字。通过setSegmentStyle()可以设置显示屏数字样式,可传入的参数有:
常量 | 值 | 描述 |
QLCDNumber.Outline | 0 | 让内容浮显,其颜色同显示屏背景颜色相同 |
QLCDNumber.Filled | 1 | 让内容浮显,颜色同窗口标题颜色相同 |
QLCDNumber.Flat | 2 | 让内容扁平化显示,颜色同窗口标题颜色相同 |
setSmallDecimalPoint(bool)方法可以设置小数点的显示方式:若为True,那么小数点就会在两个数字之间显示出来,而不会单独占一个位置。如果为False,那就会单独占位(默认为False)。
3. lcd_3显示的为字符串,可以显示的字母种类有限:A, B, C, D, E, F, h, H, L, o, P, r, u, U, Y, O/0, S/5, g/9;
4. 可以通过setMode()方法来更改数字显示方式,这里用传入QLCDNumber.Hex让数字以16进制方式显示,总共可以传入以下参数:
参数 | 值 | 描述 |
QLCDNumber.Hex | 0 | 十六进制 |
QLCDNumber.Dec | 1 | 十进制 |
QLCDNumber.Oct | 2 | 八进制 |
QLCDNumber.Bin | 3 | 二进制 |
运行截图如下:
11.2 小结
1. QLCDNumber显示方式其实就跟电子表的显示方式一样。
2. setDigitCount(int)用于设置可显示位数;setSegmentStyle()用于设置样式;setMode()用于设置数字显示方式;display()用于显示。
bug记录:overflow()信号无法触发。
欢迎关注我的微信公众号,发现更多有趣内容: