Python 跨平台PyQt5开发系列(三)案例实战
导读:本文共1878.5字符,通常情况下阅读需要6分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要:一、前言:我们在前面学习了一些使用PyQt5开发的相关知识,本次我们将实现一个简单的电子时钟来加强python的编码能力及PyQt5相关开发知识的使用。本次我们主要用到两个新的知识点:1、QTimer描述:QTimer类提供了定时器信号和单触发定时器。它在内部使用定时器事件来提供更通用的定时器。使用操作:创建一个QTimer,使用start来开始并且把它的timeout()连接到适当的槽。当这段时... ...
目录
(为您整理了一些要点),点击可以直达。一、前言:
我们在前面学习了一些使用PyQt5开发的相关知识,
本次我们将实现一个简单的电子时钟来加强python的编码能力及PyQt5相关开发知识的使用。
本次我们主要用到两个新的知识点:
1、QTimer
描述:
QTimer类提供了定时器信号和单触发定时器。
它在内部使用定时器事件来提供更通用的定时器。
使用操作:创建一个QTimer,使用start来开始并且把它的timeout()连接到适当的槽。当这段时间过去了,它将会发射timeout()信号。
2、QLCDNumber
用于显示LCD数字。它可以显示几乎任意大小的数字。可以显示十进制、十六进制、八进制或二进制数。使用display()槽连接到数据源。
二、编码实战
OK,我们先来看下本次的效果图吧。
我们先来看下完整的代码,然后再分段来讲解。
代码不多,50行不到哦。
代码详解:
1、首先我们继承QWidget来创建一个自定义时钟类。
2、在initUI方法里完成界面的编写。
3、在init_timer方法里完成有关时钟的初始化。
我们看下initUI里面的代码:
- 设置大小那些我们就不讲了,本次我们还多了一个类QPalette,我们通过它来设置组件的背景颜色及字体的背景颜色等。
背景颜色的设置
self.main_p = QPalette();:创建一个QPalette类,其相当于调色板
self.main_p.setColor(QPalette.Background,Qt.darkYellow); :设置背景颜色为darkYellow
self.setAutoFillBackground(True); :设置窗体自动填充背景颜色
self.setPalette(self.main_p);:把调色板设置给我们的顶级窗口就可以了哦。这样背景颜色就设置好了。
LCD显示组件的设置
self.lcd = QLCDNumber();创建一个QLCDNumber
self.lcd.setDigitCount(10); 设置显示数字个数
self.lcd.setMode(QLCDNumber.Dec);设置显示模式为十进制
self.lcd.setSegmentStyle(QLCDNumber.Flat);:设置样式为平面模式
再下来是一段设置里面字体颜色的,与背景颜色类似,我就不说了
显示时间:
self.lcd.display(time.strftime(‘%X’,time.localtime()))
time.strftime():接收时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定。
%X 表示显示本地相应的时间表示
time.localtime()获取本地时间。
self.main_layout = QVBoxLayout(); 创建一个盒子布局
self.main_layout.addWidget(self.lcd);把我们的显示组件添加到布局中。
self.main_layout.setAlignment(Qt.AlignCenter);:设置组件在布局的中心
self.setLayout(self.main_layout);:设置给我们的顶层布局
电子钟的初始化
我们再看下init_timer方法
self.timer = QTimer();:创建一个定时器
self.timer.setInterval(1000);:设置定时器每1秒触发一次timeout信号
self.timer.start();:启动定时器
self.timer.timeout.connect(self.updatetime);:timeout信号与updatetime方法关联,再timeout触发时,通知我们的updatetime.再updatetime里更新显示的时间。
三、总结
本次我们学习了QTimer的使用、QLCDNumber的显示、还增加了背景颜色、字体颜色的设置等。
后面我们将一点一点增加复杂度,循序渐进。
小伙伴们有什么好的建议都可以给我留言哦!
如果看到了这里,说明你已经看完了,感谢你的支持
喜欢就点一下哦,谢谢!
@著作权归作者所有,转载请联系作者 用心写好每一篇文章
Python 跨平台PyQt5开发系列(三)案例实战的详细内容,希望对您有所帮助,信息来源于网络。