以类 LCD 液晶数字形式显示系统时钟
液晶显示(LCD)数字是一个七段显示,通常用于电子设备上的显示。这些LCD数字比点阵显示更具有可读性。让我们创建一个应用程序以使用类似LCD的数字显示系统时钟。
如何去做...
在这个应用中,我们将使用QTime类来获取当前系统的时间。根据下面的步骤来创建这个应用程序:
打开Qt Designer并基于Dialog without Buttons模板新建一个应用程序。
将应用保存为demoLCD.ui。
因为我们想要显示类似LCD的数字,所以要拖动LCD Number部件放到窗体上,如下面的截图所示:
在Property Editor窗口中,将LCD Number部件的Width和Height属性分别设置为100和40,仅仅让系统时钟能够完整显示。使用pyuic5命令将.ui的XML文件转换成Python代码。生成的Python文件为demoLCD.py,这个文件可以在本书源代码中找到。
创建一个名为callLCD.pyw的Python脚本并导入demoLCD.py代码,以调用用户界面设计并通过LCD Number部件显示当前系统时钟。
脚本必须包含一个定时器以使LCD显示在固定时间段内保持更新。callLCD.pyw脚本的Python代码如下所示:
import sys
from PyQt5.QtWidgets import QDialog, QApplication
from demoLCD import *
class MyForm(QDialog):
def __init__(self):
super().__init__()
self.ui = Ui_Dialog()
self.ui.setupUi(self)
timer = QtCore.QTimer(self)
timer.timeout.connect(self.showlcd)
timer.start(1000)
self.showlcd()
def showlcd(self):
time = QtCore.QTime.currentTime()
text = time.toString('hh:mm')
self.ui.lcdNumber.display(text)
if __name__=="__main__":
app = QApplication(sys.argv)
w = MyForm()
w.show()
sys.exit(app.exec_())
它是如何工作的...
在这个代码中,你可以看到创建了一个QTimer的实例,名为timer,并且它的timeout()信号与showlcd()方法相关联。每当timeout()信号产生时,就会调用这个showlcd()方法。也可以通过start()方法来设置定时器每隔1000毫秒就发出一个timeout()信号。
在showlcd()方法中,你获取当前系统时钟,并转换成字符串类型,以HH:MM的格式显示在LCD Number部件上,如下截图所示: