Python界面编程第九课:Pyside2 (Qt For Python)创建数字时钟
先上代码:
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 类的对象,然后把QTimer的timeout 信号连接到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)创建数字时钟相关推荐
- Python界面编程第二课:Pyside2 创建窗口 (Python GUI)
Pyside2 创建窗口 (Python GUI) – 在这篇Pyside2文章中,会演示如何创建窗口,学习本课之前请先看第一课<我们开始用Pyside2 (Qt For Python)> ...
- python界面编程和网口通信_基于python的GUI聊天室设计
" 套接字 " ,用于描述 IP 地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之 间的通信.在 Internet 上的主机一般运行了多个服务软件,同时提供几种 ...
- Python界面编程第十三课:Pyside2 (Qt For Python)GridLayout网格布局
GridLayout 是什么? QGridLayout 是控制网格布局的类. QGridLayout 会占据它的可用空间(通过父布局或parentWidget(),将其划分为行和列,并将其管理的每个控 ...
- Python界面编程第十一课:Pyside2 (Qt For Python)创建进度条
QProgressBar 是什么? 进度条用于向用户提供操作进度的指示,并提示用户应用程序仍在运行. 进度条使用了范围的概念.通过指定最小和最大值来设定范围,之后会按百分比来显示范围.百分比是通过(v ...
- Python界面编程第二十一课:Pyside2 (Qt For Python)打印预览QTextEdit内容
Pyside2 的QPrintSupport类中的QPrinter 和 QPrintPreviewDialog支持打印功能. 先看完整代码: from PySide2.QtWidgets import ...
- Python界面编程第十九课:Pyside2 (Qt For Python)创建菜单
先看完整代码: from PySide2.QtWidgets import QApplication,QMainWindow, QAction import sys from PySide2.QtGu ...
- Python界面编程第十七课:Pyside2 (Qt For Python)QCompleter自动完成
QCompleter 是什么? QCompleter可以在任何Qt控件(如QLineEdit和QComboBox)中提供自动完成功能.当用户开始输入一个单词时,QCompleter根据一个单词列表提示 ...
- Python界面编程第二十课:Pyside2 (Qt For Python)文本编辑框QTextEdit
先看完整代码: from PySide2.QtWidgets import QApplication, QMainWindow, QAction, QTextEdit import sys from ...
- Python界面编程第十课:Pyside2 (Qt For Python)创建StatusBar
QStatusBar 是什么? QStatusBar类提供了一个适合于显示状态信息的横向条幅. 状态指示分为三类: Temporary – 一般地占据了大部分的状态栏.用于解释控件提示文本或菜单项. ...
最新文章
- 使用Volley传输网络数据
- Linux学习 Unit 4
- 摘录HTTP头部信息的注释
- idea启动前端vue项目(各种坑)
- 电脑故障扫描修复软件_253个电脑故障修复工具
- 剑指 Offer 38. 字符串的排列(有重复元素的排列)
- 构建openjdk镜像_在Windows上构建OpenJDK
- libevent和基于libevent的网络编程
- pycharm直接显示所有show value的值(直接打开所有的值)
- eclipse package,source folder,folder区别及相互转换
- 细算经典网游私服新作下刀的“手术”
- HTTP协议中GET、POST和HEAD的介绍
- SpringBoot+Quartz实现动态可配定时任务(动态定时任务)
- 单片机外文参考文献期刊_单片机-英文参考文献
- 计算机网络的产生与发展可分为哪四个阶段,计算机网络形成与发展大致分为如下4个阶段...
- C++struct里定义函数
- 银行中台与互联网中台有什么不同?该怎么建?
- c c++ 画点 画线
- 移动app如何开发?
- 王道数据结构习题代码3.3.7(栈和队列的应用)