使用 PyQt5 创建一个数字时钟

使用 PyQt5 创建一个数字时钟

  • 效果
  • 代码解析
    • 定义时钟类
    • 初始化界面
    • 显示时间
  • 完整代码

在这篇博客中,我们将使用 PyQt5 创建一个简单的数字时钟。

效果

在这里插入图片描述

代码解析

定义时钟类

class ClockWindow(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle('Digital Clock')self.setGeometry(100, 100, 400, 200)self.initUI()

初始化界面

def initUI(self):layout = QVBoxLayout()self.label = QLabel(self)self.label.setAlignment(Qt.AlignCenter)self.label.setStyleSheet("font-size: 48px;")layout.addWidget(self.label)container = QWidget()container.setLayout(layout)self.setCentralWidget(container)timer = QTimer(self)timer.timeout.connect(self.showTime)timer.start(1000)self.showTime()
  • 创建一个 QVBoxLayout 布局。
  • 创建一个 QLabel 控件用于显示时间。
  • 设置标签居中对齐。 使用 setStyleSheet 方法设置标签字体大小为 48 像素。
  • 将标签添加到布局中。
  • 创建一个容器 QWidget,将布局设置为该容器的布局,并将容器设置为主窗口的中央控件。
  • 创建一个 QTimer,每秒触发一次 timeout 事件,连接到 showTime 方法。 调用 showTime 方法显示当前时间。

显示时间

def showTime(self):current_time = QTime.currentTime().toString('hh:mm:ss')self.label.setText(current_time)

完整代码

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QVBoxLayout, QWidget
from PyQt5.QtCore import QTimer, QTime, Qtclass ClockWindow(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle('Digital Clock')self.setGeometry(100, 100, 400, 200)self.initUI()def initUI(self):layout = QVBoxLayout()self.label = QLabel(self)self.label.setAlignment(Qt.AlignCenter)self.label.setStyleSheet("font-size: 48px;")layout.addWidget(self.label)container = QWidget()container.setLayout(layout)self.setCentralWidget(container)timer = QTimer(self)timer.timeout.connect(self.showTime)timer.start(1000)self.showTime()def showTime(self):current_time = QTime.currentTime().toString('hh:mm:ss')self.label.setText(current_time)if __name__ == "__main__":app = QApplication(sys.argv)window = ClockWindow()window.show()sys.exit(app.exec_())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/38398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对数函数转换公式

对数函数换底公式. 1. 2. 3. 以上公式可以由以下公式推导而来, 1. 2. 3. 4.

zabbix监控进阶:如何分时段设置不同告警阈值(多阈值告警)

作者 乐维社区(forum.lwops.cn)乐乐 在生产环境中,企业的业务系统状态并不是一成不变的。在业务高峰时段,如节假日、促销活动或特定时间段,系统负载和用户访问量会大幅增加,此时可能需要设置更高的告警阈值…

顶顶通呼叫中心中间件-私有化TTS安装指南

顶顶通呼叫中心中间件-私有化TTS安装指南 1、下载模型 执行这个下载模型 wget http://down.ddrj.com/paddlespeech_tts.zip 2、解压模型 执行这个解压模型 unzip -d /ddt/asrproxy paddlespeech_tts.zip 3、配置asrproxy.json文件 这里需要注意的是:以下内容…

安全与加密常识(7)pem, der, crt, cer, key等各类证书与密钥文件后缀解析

在计算机科学和安全领域,PEM, DER, CRT, CER, KEY等文件后缀经常出现在证书和密钥文件的命名中。这些后缀代表了不同的文件格式和编码方式,对于理解它们的含义和应用至关重要。本文将逐一解析这些后缀,帮助读者更好地理解和使用。 PEM(Privacy-Enhanced Mail) PEM是一种…

Spark学习3.0

目录 10.3.4 Spark运行原理 1.设计背景 2.RDD概念 3.RDD特性 4.RDD之间的依赖关系 窄依赖和宽依赖 5.Stage的划分 Stage的类型包括两种:ShuffleMapStage和ResultStage 6.RDD运行过程 10.3.4 Spark运行原理 1.设计背景 许多 迭代式算法(比如机器学习、图…

AI绘画工具介绍常见的AI绘画工具及其特点和应用场景的详细介绍

AI绘画工具是一类利用人工智能技术,特别是深度学习和神经网络技术,来辅助或自动生成艺术作品的软件。这些工具在艺术创作、设计、广告制作等领域有广泛的应用,极大地降低了创作门槛,提高了效率。以下是一些常见的AI绘画工具及其特…

mybatis#号和$区别

在MyBatis中,#{}和${}都是用于实现动态SQL的占位符,但它们在使用场景和安全性上有明显的区别: 用途区别: #{}主要用于传递接口传输过来的具体数据,如参数值,它可以防止SQL注入,因为MyBatis会…

硬的不行来软的,我还破解不了你?看老哥如何Dump 你的 BootRom。

最近曾写了一篇:【牛掰!这小哥用显微镜摄取芯片ROM,还原了芯片的二进制固件】,蛮多朋友说这要是采用多层堆叠,你还能这么原始的操作?自然不行,而且这也是一篇考古的文章。但是!!! 今天带来的这篇,老哥从软件采用了非侵入式的方式,实现了破解。从EL2 层层逆向最终获…

实验5 图像分割

1. 实验目的 ①掌握图像分割的含义与目的; ②掌握迭代法、最大类间方差法、直方图法等阈值分割方法; ③掌握霍夫变换、区域生长法、区域分裂与合并法的原理,并能编程实现。 2. 实验内容 ①调用Matlab / PythonOpenCV中的相关函数&#xff…

nginx优势以及应用场景,编译安装和nginx

一. Nginx是什么? 1. Nginx概述 高性能、轻量级Web服务软件系统资源消耗低对HTTP并发连接的处理能力高单台物理服务器可支持30,000~50,000个并发请求Nginx(发音同 “engine x”)是一个高性能的反向代理和Web服务器软件&#xff0c…

OffscreenCanvas:Web Workers 中的画布操作

在 Web 开发中,我们经常需要处理复杂的图形和动画,这些操作可能会影响页面的性能和用户体验。为了解决这个问题,现代浏览器引入了 OffscreenCanvas 接口,它允许我们在后台线程(Web Workers)中进行画布操作&…

python教程---网络爬虫

7.1 urllib Urllib是Python内置的一个用于读取来自Web的数据的库。它是一个请求库,可以用来发送HTTP请求,获取网页内容,支持多种HTTP方法,如GET和POST等。 使用Urllib读取网页内容的步骤如下: 导入Urllib库中的reque…

Redis--18--Redis Desktop Manage下载与安装

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Redis Desktop Manage1.官网下载https://redis.io/insight/ 2.安装方法3.使用方法3.1.进入RedisDesktopManager的主界面3.2 新建连接3.3 支持操作 Redis Desktop Ma…

J021_QQ号格式校验

一、需求描述 校验QQ号码是否正确。要求全部是数字,数字长度(6-20位之间),不能以0开头。 二、代码实现 package com.itheima.sort;public class Test {public static void main(String[] args) {System.out.println("----…

汽车尾灯(转向灯)电路设计

即当汽车进行转弯时,司机打开转向灯,尾灯会根据转向依次被点亮,经过一定的间隔后,再全部被消灭。不停地重复,直到司机关闭转向灯。 该效果可由以下电路实现: 完整电路图: 02—电路设计要点 延时电路的要点主要有两个: 一、当转向开关被按下时,LED需要逐个亮起; 二、LED被逐…

uniapp 使用cavans 生成海报

uniapp 使用cavans 生成海报 npm install qs-canvas1.创建 useCanvas.js /*** Shopro qs-canvas 绘制海报* version 1.0.0* author lidongtony* param {Object} options - 海报参数* param {Object} vm - 自定义组件实例*/ import QSCanvas from qs-canvas; import { getPos…

NVIDIA Visual Profiler启动失败报错

在银河麒麟V10安装完NVIDIA后,想着试着运行一下NVIDIA Visual Profiler,发现报错,如下图。 照着提示翻阅日志文件。看见其中写着 !ENTRY com.nvidia.viper.birt 2 0 2024-06-30 08:39:39.806 !MESSAGE Could not resolve module: com.nvidi…

ACE之Task框架

简介 其提供了并发处理事件的能力 结构 #mermaid-svg-8gxc0Agd7gZ9tHdf {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-8gxc0Agd7gZ9tHdf .error-icon{fill:#552222;}#mermaid-svg-8gxc0Agd7gZ9tHdf .error-text{…

R学习资源及R包安装

转自生信师兄 生信必备技巧之R语言基础教程 1. 学习资源 推荐书籍:R语言实战,R数据科学等等; 这两本书在公众号【生信师兄】都有pdf版,有需要的可以关注公众号【生信师兄】并回复:“R语言”,即可获得免费…

【自然语言处理】预训练语言模型实现与应用

预训练语言模型实现与应用 1 任务目标 1.1 案例简介 ​ 2018年,Google提出了预训练语言模型BERT,该模型在各种NLP任务上都取得了很好的效果。与此同时,它的使用十分方便,可以快速地对于各种NLP任务进行适配。因此,B…