先上代码:

from PySide2.QtWidgets import QApplication, QWidget, QLCDNumber
from PySide2.QtCore import QTime, QTimer, SIGNAL
import sys
from PySide2.QtGui import QIconclass DigitalClock(QLCDNumber):def __init__(self, parent = None):super(DigitalClock, self).__init__(parent)self.setSegmentStyle(QLCDNumber.Filled)timer = QTimer(self)self.connect(timer, SIGNAL('timeout()'), self.showTime)timer.start(1000)self.showTime()self.setWindowTitle("Digital Clock")self.resize(300, 200)self.setIcon()def setIcon(self):appIcon = QIcon("icon.png")self.setWindowIcon(appIcon)def showTime(self):time = QTime.currentTime()text = time.toString('hh:mm')if(time.second() % 2) == 0:text = text[:2] + ' ' + text[3:]self.display(text)myapp = QApplication(sys.argv)
window = DigitalClock()
window.show()
myapp.exec_()
sys.exit()

首先导入要用的库:

from PySide2.QtWidgets import QApplication, QWidget, QLCDNumber
from PySide2.QtCore import QTime, QTimer, SIGNAL
import sys
from PySide2.QtGui import QIcon

然后是继承QLCDNumber这个主窗口类。在这个类中,我们将创建QTimer 类的对象,然后QTimertimeout 信号连接到showTime 这个槽。

QLCDNumber 是什么?

它可以显示任意大小的数字,可以显示十进制、十六进制、八进制或二进制数。使用display() 槽很容易连接到数据源,它重载了五种参数类型。

使用setMode()可以设置更多的槽,setSmallDecimalPoint()可以设置小数点位数。

数据溢出是,QLCDNumber会发出overflow()的信号。setDigitCount()可以设置数据范围,但是setSmallDecimalPoint()的设置会影响它。如果显示设置为十六进制、八进制或二进制,则会显示等值的整数。

这些数字和符号可以显示:0/O、1、2、3、4、5/S、6、7、8、9/g、减、小数点、A、B、C、D、E、F、h、H、L、o、P、r、u、U、Y、冒号、度符号(在字符串中指定为单引号)和空格。QLCDNumber会用空格替换非法字符。

QLCDNumber对象无法直接获取内容,但可以使用value()得到数值。如果您确实需要文本,我们建议您将给display() 槽提供信号的源连接到另一个槽,并将值存储在那里。

顺便说一句,QLCDNumber是Qt中最古老的部分,它的根源可以追溯到BASIC程序。

QTimer 类是什么 ?

QTimer类为定时器提供了一个高级编程接口。要使用它,先创建一个QTimer,将timeout()信号连接到适当的槽,并调用start()。然后它将以固定的间隔发出timeout()信号。

下面这个槽就连接了timeout()信号:

 def showTime(self):time = QTime.currentTime()text = time.toString('hh:mm')if(time.second() % 2) == 0:text = text[:2] + ' ' + text[3:]self.display(text)

运行一下看效果:

如果不清楚其它代码含义,请参考前面课程:

Python界面编程第一课:我们开始用Pyside2 (Qt For Python)

Python界面编程第二课:Pyside2 创建窗口 (Python GUI)

Python界面编程第三课:Pyside2 (Qt For Python)给窗口加个图标

Python界面编程第四课:Pyside2 (Qt For Python)创建图标模式

Python界面编程第五课:Pyside2 (Qt For Python)怎么创建控件提示Tooltip

Python界面编程第六课:Pyside2 (Qt For Python),QPushButton按钮的信号与槽

Python界面编程第七课:Pyside2 (Qt For Python)窗口居中

Python界面编程第八课:Pyside2 (Qt For Python)打开关于窗口

Python界面编程第九课:Pyside2 (Qt For Python)创建数字时钟相关推荐

  1. Python界面编程第二课:Pyside2 创建窗口 (Python GUI)

    Pyside2 创建窗口 (Python GUI) – 在这篇Pyside2文章中,会演示如何创建窗口,学习本课之前请先看第一课<我们开始用Pyside2 (Qt For Python)> ...

  2. python界面编程和网口通信_基于python的GUI聊天室设计

    " 套接字 " ,用于描述 IP 地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之 间的通信.在 Internet 上的主机一般运行了多个服务软件,同时提供几种 ...

  3. Python界面编程第十三课:Pyside2 (Qt For Python)GridLayout网格布局

    GridLayout 是什么? QGridLayout 是控制网格布局的类. QGridLayout 会占据它的可用空间(通过父布局或parentWidget(),将其划分为行和列,并将其管理的每个控 ...

  4. Python界面编程第十一课:Pyside2 (Qt For Python)创建进度条

    QProgressBar 是什么? 进度条用于向用户提供操作进度的指示,并提示用户应用程序仍在运行. 进度条使用了范围的概念.通过指定最小和最大值来设定范围,之后会按百分比来显示范围.百分比是通过(v ...

  5. Python界面编程第二十一课:Pyside2 (Qt For Python)打印预览QTextEdit内容

    Pyside2 的QPrintSupport类中的QPrinter 和 QPrintPreviewDialog支持打印功能. 先看完整代码: from PySide2.QtWidgets import ...

  6. Python界面编程第十九课:Pyside2 (Qt For Python)创建菜单

    先看完整代码: from PySide2.QtWidgets import QApplication,QMainWindow, QAction import sys from PySide2.QtGu ...

  7. Python界面编程第十七课:Pyside2 (Qt For Python)QCompleter自动完成

    QCompleter 是什么? QCompleter可以在任何Qt控件(如QLineEdit和QComboBox)中提供自动完成功能.当用户开始输入一个单词时,QCompleter根据一个单词列表提示 ...

  8. Python界面编程第二十课:Pyside2 (Qt For Python)文本编辑框QTextEdit

    先看完整代码: from PySide2.QtWidgets import QApplication, QMainWindow, QAction, QTextEdit import sys from ...

  9. Python界面编程第十课:Pyside2 (Qt For Python)创建StatusBar

    QStatusBar 是什么?  QStatusBar类提供了一个适合于显示状态信息的横向条幅. 状态指示分为三类: Temporary – 一般地占据了大部分的状态栏.用于解释控件提示文本或菜单项. ...

最新文章

  1. 使用Volley传输网络数据
  2. Linux学习 Unit 4
  3. 摘录HTTP头部信息的注释
  4. idea启动前端vue项目(各种坑)
  5. 电脑故障扫描修复软件_253个电脑故障修复工具
  6. 剑指 Offer 38. 字符串的排列(有重复元素的排列)
  7. 构建openjdk镜像_在Windows上构建OpenJDK
  8. libevent和基于libevent的网络编程
  9. pycharm直接显示所有show value的值(直接打开所有的值)
  10. eclipse package,source folder,folder区别及相互转换
  11. 细算经典网游私服新作下刀的“手术”
  12. HTTP协议中GET、POST和HEAD的介绍
  13. SpringBoot+Quartz实现动态可配定时任务(动态定时任务)
  14. 单片机外文参考文献期刊_单片机-英文参考文献
  15. 计算机网络的产生与发展可分为哪四个阶段,计算机网络形成与发展大致分为如下4个阶段...
  16. C++struct里定义函数
  17. 银行中台与互联网中台有什么不同?该怎么建?
  18. c c++ 画点 画线
  19. 移动app如何开发?
  20. 王道数据结构习题代码3.3.7(栈和队列的应用)

热门文章

  1. 绝地求生服务器不稳定奖励,绝地求生间歇性掉帧 几个小窍门轻松解决
  2. 本地储存 localstorage sessionstorage 的兼容性,API,特点
  3. 原始字符串(如换行符或 Unicode 字符)
  4. 【概率论】正态分布的期望和方差对图形的影响
  5. Phoenix查询hbase
  6. 剑指offer(二十七)-字符串的排列(Java版)
  7. Ubuntu双系统的安装(有U盘就行)
  8. 上市欢庆后 阿里还有许多正事要做
  9. FORCAL参数优化动态库FcOpt
  10. 【OCC学习16】Modeling Data模块2d几何图形创建