python - pyqt数字时钟

PyQt5 - QWidgets部件进阶教程之数字时钟 废话 定义数字时钟类 实现数字时钟类 整体代码 最终效果 相关类 相关方法废话该案例演示QTimer如何在规定时间更新部件。定义数字时钟类数字时钟类提供一个显示小时和分钟的部件,我们子类化QLCDNumber,并实现一个showTime()槽来更新时钟显示。from PyQt5.QtWidgets import * from PyQt5.QtCore import * import sysclass 阅读详情

 用pyqt5实现一个简易的数字时钟


时钟功能:

  计时,开始与暂停,刷新并返回csdn访问量

使用到的库:

  PyQt5:

    pyqt应用:QApplication

    窗口:QWidget

    按钮:QPushButton

    LCD数字:QLCDNumber(这是个好东西)

    原件的布局:QVBoxLayout

    时间相关:QTime, QTimer

  爬虫:

    爬取网页:urlopen

    解析网页信息:Beautifulsoup

import sys

'''用于制作时钟界面'''
from PyQt5.QtCore import QCoreApplication, QTime, QTimer
from PyQt5.QtWidgets import (QLCDNumber, QWidget, QPushButton,
    QVBoxLayout, QApplication)

'''用于爬取访问量'''
from bs4 import BeautifulSoup
from urllib.request import urlopen

实现代码:

  1.需求分析:

    首先需要创建一个合适的窗口:

      -Pause按钮用于暂停与开始

       -- 需要一个按钮,以及绑定一个按钮触发的函数

      -中间的窗口用于显示时间

        --需要一个显示时间的原件

      -下部的visit显示博客的实时访问量

        --需要一个按钮,以及绑定一个按钮触发的函数

        --需要一个简单的爬虫      

    2.根据需求设计程序框架

class StudyClock(QWidget):
    #构造函数
    def __init__(self):
    #生成界面
    def initUI(self):

    #显示时间
    def showTime(self):
    #暂停与开始按钮
    def pbtnClicked(self):
    #访问量按钮
    def qbtnReset(self):

    3.代码实现:

      首先我们应该实现窗口和窗口内的各种元件,所以首先实现initUI(self)函数

      创建窗口:

#窗口大小
self.setGeometry(300, 300, 250, 200)
#窗口标题
self.setWindowTitle('Study Clock')
#显示窗口
self.show()

      三个元件:(两个按钮和显示时间)

'''显示时间'''
#创建元件
self.lcd = QLCDNumber(self)
#设置为显示五个字符
self.lcd.setDigitCount(5)

'''访问量按钮'''
#创建按钮
self.qbtn = QPushButton('0', self)
#与qbtnReset函数绑定
self.qbtn.clicked.connect(self.qbtnReset)

'''暂停按钮'''
self.pbtn = QPushButton('Pause', self)
self.pbtn.clicked.connect(self.pbtnClicked)

       窗口布局:(自上而下)

vbox = QVBoxLayout()
vbox.addWidget(self.pbtn)
vbox.addWidget(self.lcd)
vbox.addWidget(self.qbtn)
self.setLayout(vbox)

     利用计时器:每一秒更新一次(调用一次showTime函数)


self.timer = QTimer(self)
#一次刷新会调用一次showTime函数
self.timer.timeout.connect(self.showTime)
#一秒钟更新一次
self.timer.start(1000)
小时,分钟,秒钟
self.h = 0
self.m = 0
self.s = 0

      然后分别实现三个函数(暂停按钮,访问量按钮,时间显示)

      这里利用了一个flag来判断状态,若self.flag == 1则是没有暂停,反之则是暂停状态

      show函数:

def showTime(self):

    '''每秒自增'''
    if self.flag == 1:
        self.s = self.s + 1
    if(self.s == 60):
         self.s = 0
         self.m = self.m + 1
    if(self.m == 60):
         self.m = 0
         self.h = self.h + 1

    '''创建时间字符串'''
    time = QTime(self.h, self.m, self.s)
    text = time.toString('hh:mm')

    '''打印时间(每隔一秒中间的' : '号会闪一下'''
    if time.second() % 2 == 0:
        text = text[:2] + ' ' + text[3:]
    #print(text)
    self.lcd.display(text)

    '''每五秒爬取一次访问量'''
    if self.m % 5 == 0 and self.s == 1:           
        self.qbtnReset();

       pbtnClicked函数(暂停和开始按钮)

def pbtnClicked(self):
    #暂停或开始,根据flag控制暂停和开始
    if self.flag:
        self.flag = 0
        self.pbtn.setText("Start")
    else :
        self.flag = 1
        self.pbtn.setText("Pause")

       qbtnReset函数:(访问量爬虫)

       记得更改urlopem()里面的链接为你的博客主页的链接

 def qbtnReset(self):
    '''爬取下网页'''
    html = urlopen(
           "https://blog.youkuaiyun.com/Kprogram")
    html = html.read().decode('utf-8')
    '''处理网页信息,找到访问量'''
    soup = BeautifulSoup(html, features='lxml')
    hrlf = soup.find('div', {"class": "grade-box clearfix"})
    dts = hrlf.find_all('dl')
    vst = dts[1].find('dd').get_text().strip()
    #根据访问量设置按钮名字
    self.qbtn.setText("visit: "+vst)

      最后加上构造函数,以及实例化pyqt对象

      完整代码:

# -*- coding: utf-8 -*-
import sys

from bs4 import BeautifulSoup
from urllib.request import urlopen

from PyQt5.QtCore import QCoreApplication, QTime, QTimer
from PyQt5.QtWidgets import (QLCDNumber, QWidget, QPushButton,
    QVBoxLayout, QApplication)

class StudyClock(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()
        #为零时表暂停
        self.flag = 1

    def initUI(self):

        #窗口信息
        self.setGeometry(300, 300, 250, 200)
        self.setWindowTitle('Study Clock')
        self.show()

        #显示时间的元件
        self.lcd = QLCDNumber(self)
        #设置为显示五个字符
        self.lcd.setDigitCount(5)

        #访问量按钮
        self.qbtn = QPushButton('0', self)
        self.qbtn.clicked.connect(self.qbtnReset)
        #暂停按钮
        self.pbtn = QPushButton('Pause', self)
        self.pbtn.clicked.connect(self.pbtnClicked)
        #放成一列
        vbox = QVBoxLayout()
        vbox.addWidget(self.pbtn)
        vbox.addWidget(self.lcd)
        vbox.addWidget(self.qbtn)
        self.setLayout(vbox)

        #利用计时器每一秒打印时间
        self.timer = QTimer(self)
        self.timer.timeout.connect(self.showTime)
        self.timer.start(1000)
        #小时,分钟,秒钟
        self.h = 0
        self.m = 0
        self.s = 0

    def showTime(self):
        #每秒自增
        if self.flag == 1:
            self.s = self.s + 1
        if(self.s == 60):
            self.s = 0
            self.m = self.m + 1
        if(self.m == 60):
            self.m = 0
            self.h = self.h + 1
        #创建时间字符串
        time = QTime(self.h, self.m, self.s)
        text = time.toString('hh:mm')
        #打印时间(每隔一秒中间的' : '号会闪一下
        if time.second() % 2 == 0:
            text = text[:2] + ' ' + text[3:]
        #print(text)
        self.lcd.display(text)
        #爬取访问量
        if self.m % 5 == 0 and self.s == 1:           
            self.qbtnReset();

    def pbtnClicked(self):
        #暂停或开始
        if self.flag:
            self.flag = 0
            self.pbtn.setText("Start")
        else :
            self.flag = 1
            self.pbtn.setText("Pause")

    def qbtnReset(self):
        html = urlopen(
                "https://blog.youkuaiyun.com/Kprogram")
        html = html.read().decode('utf-8')
        soup = BeautifulSoup(html, features='lxml')

        hrlf = soup.find('div', {"class": "grade-box clearfix"})
        dts = hrlf.find_all('dl')
        vst = dts[1].find('dd').get_text().strip()
        self.qbtn.setText("visit: "+vst)

if __name__ == '__main__':

    app = QApplication(sys.argv)

    ex = StudyClock()

    sys.exit(app.exec_())

 

mac桌面时钟 浮动 (python) mac浮动时钟,python实现,多时区 阅读详情

相关推荐

动态指针时钟:利用pyqt5制作指针钟表显示实时时间

‘’’hour_point = [QPoint(7, 8), QPoint(-7, 8), QPoint(0, -30)]min_point = [QPoint(7, 8), QPoint(-7, 8), QPoint(0, -65)]secn_point = [QPoint(7, 8), QPoint(-7, 8), QPoint(0, -80)]‘’‘定义三种颜色、用于后面设置三种指针的颜色’‘’hour_color = QColor(182, 98, 0, 182)min_color = QColor

2401_83817171的博客 814

python PyQt5 数字时钟程序

本文档将指导您如何使用Python的PyQt5库创建一个简单的时钟程序。

meiaoxue1234的博客 959

PYQT制作动态时钟

【代码】PYQT制作动态时钟。

xulibo5828的博客 586

pyqt绘制时钟

这里的文本显示不对,想水平显示。求教

weixin_49577420的博客 338

Python与PyQt4:日期时间处理与显示

本章节详细介绍了如何在Python中使用PyQt4框架实现用户界面,并通过LCD数字小部件实时显示系统时钟时间。同时,讲述了如何在屏幕上显示日历,并通过日期编辑小部件处理和展示用户选择的日期。通过实际的代码示例,深入解析了QDate类、QDateEdit类及其相关属性和方法,以及如何将这些类和方法应用于实际的日期时间显示和处理。

weixin_35516273的博客 501

PyQt5使用QTimer实现电子时钟

本文用 PyQt5 的QTimer类的两种方式实现电子时钟,供大家参考,具体内容如下 【效果图】 【知识点】 QTimer类提供了定时器信号/槽和单触发定时器。 它在内部使用定时器事件来提供更通用的定时器。 QTimer很容易使用:创建一个QTimer,使用start()来开始并且把它的timeout()连接到适当的槽。当这段时间过去了,它将会发射timeout()信号。 【实现】 1、定时器信号/槽方式 class MyTimer(QWidget): def __init__(self, parent = None): # ...... #新建一个QTimer对象

Webiny 多语言页面翻译实现指南:translatePage Mutation 与 TranslatePageUseCase 深度解析

> 本文基于 Webiny 开源仓库中的 `ai-context/plans/translations.md` 实施计划与其对应 PRD(`ai-context/prds/translate-page.md`),深入讲解 Website Builder 如何通过 `translatePage(pageId, languageCode, folderId)` GraphQL mutation 为现有

gitblog_01148的博客 412

华为Atlas 300I推理卡驱动安装全攻略:从环境检查到常见问题解决

本文提供了华为Atlas 300I推理卡驱动安装的完整实战指南。从安装前的系统环境检查、内核版本匹配,到详细的二进制.run文件安装步骤、源码编译及高级定制化部署,涵盖了驱动安装的全流程。文章重点解析了安装过程中的关键决策、常见问题排查与解决方案,并针对生产环境的多卡配置、性能调优及安全加固给出了专业建议,旨在帮助用户高效、稳定地完成AI推理加速卡的部署。

swift5iosmith的博客 628

python代码时钟_Python实现模拟时钟代码推荐

python实现模拟时钟代码推荐 # coding=utf8import sys, pygame, math, randomfrom pygame.locals import *from datetime import datetime, date, timedef print_text(font, x, y, text, color=(255,255,255)):imgtext = font.r...

weixin_30464195的博客 2014

【探秘】二维异形件重叠移除算法:从度量到消除的实战解析

本文深入解析二维异形件重叠移除算法的核心技术与实战应用,涵盖重叠度量、零件扰动策略及消除方法。通过NFP(临界多边形)技术、空间分区加速等优化手段,有效解决异形件排版中的重叠问题,提升材料利用率和计算效率。适合制造业、CAD软件开发者及算法工程师参考。

weixin_28698059的博客 251

浅谈车联网概述-1

车联网技术目前在车企中应用广泛,车联网通过车载传感器、无线通信等技术,能够将车辆上百的传感器数据上传至云端,当前智能网联车辆可以理解为一个“大号”手机。

Hello, World! 新能源汽车智能网联工程师,分享日常工作思考。 559

动态指针时钟:利用pyqt5制作指针钟表显示实时时间(1),2024年最新阿里面试官没有写面评

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

m0_57077948的博客 1097

Qwen3.5在昇腾910B上的vLLM Ascend高性能部署实战

大语言模型推理优化是AI工程落地的核心环节,其本质是计算、内存与通信三者的协同调度。vLLM作为主流推理框架,通过PagedAttention和Continuous Batching显著提升GPU利用率;而昇腾NPU凭借高带宽HBM与专用AI算子,在国产化算力平台中展现出独特优势。当vLLM深度适配昇腾(即vLLM Ascend),不仅保留动态批处理、流式输出等关键能力,更实现KV Cache的HBM感知管理与HCCL直通优化,使中小尺寸模型(如Qwen3.5-35B)在单台Atlas A3服务器上达成百并

weixin_30558697的博客 430

python项目神奇时钟代码_Python实现模拟时钟代码推荐

Python实现模拟时钟代码推荐# coding=utf8import sys, pygame, math, randomfrom pygame.locals import *from datetime import datetime, date, timedef print_text(font, x, y, text, color=(255,255,255)): imgtext = font....

weixin_39647773的博客 172

基于Simulink的压缩空气储能(Compressed Air Energy Storage, CAES)

压缩空气储能(CAES)是一种将电能转化为压缩空气存储在高压容器中,然后在需要时释放空气驱动涡轮机发电的技术。它具有大规模、长寿命和环境友好的特点,在电力系统中用于削峰填谷、频率调节和备用电源等应用。本项目将详细介绍如何在MATLAB/Simulink中搭建一个完整的基于压缩空气储能的系统,并提供具体的代码实现和设计步骤。如果你需要实现更复杂的控制逻辑,可以使用MATLAB Function模块。以下是一个简单的例子,展示了如何在该模块中实现一个条件逻辑:Matlab深色版本Kp = 1;

MHD0815的博客 1274

Unity之如何实现TTS文本转语音(真人发音)

微软Azure TTS 文本转语音 服务 将文本转换为逼真的语音的语音服务功能 支持个各国语言,各种中文各种方言,支持不同音色男音女音 支持离线和在线版本

TxNet 5479

【python】实现一个python编程的小时钟!

【本实验内容】 1.GUI、PyQT5介绍2.实现此次实验效果 【一 GUI、PyQt5介绍】 1.Python简介 2.GUI介绍 几个常用的Python GUI库: (1)wxPython (2)tkinter (3)PyQt5 利用PyQt完成的项目效果展示: 【二 实现此次项目效果】 注意:后面代码都是在前面的基础上添加的; >&...

weixin_30823001的博客 677

【1.2】Costas环的基本原理概述

Costas环是一种用于载波恢复的相干解调技术,可直接从BPSK等抑制载波信号中恢复本地载波并完成解调。其核心结构包含同相/正交双支路处理,通过混频、低通滤波后,利用I/Q支路信号乘积进行相位误差检测,经环路滤波器调节VCO输出频率,实现载波同步。课程将重点讲解Costas环的MATLAB仿真实现、系统性能分析及FPGA开发,包括信号产生、频偏模拟、滤波器设计等模块,并通过AWGN信道和不同频偏条件下的测试验证系统性能。该技术无需单独提取载波,在数字通信系统中具有重要应用价值。

fpga/matlab/simulink算法仿真工程 450

python编程工时计算_【python】实现一个python编程的小时钟!

2.GUI介绍几个常用的Python GUI库:(1)wxPython(2)tkinter(3)PyQt5利用PyQt完成的项目效果展示:【二 实现此次项目效果】注意:后面代码都是在前面的基础上添加的;>>>导入模块:1 from PyQt5.QtGui import * #QtGui:对系统及窗口的操作2 from PyQt5.QtCore import * #QtCore:包含一些核心的应...

weixin_39624097的博客 393

高通平台 Android T 蓝牙技术全解析:A2DP 与 AVRCP 核心代码路径与交互流程

A2DP 接收端 - 连接流程(AVDTP 打开)

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 288

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【Python随笔】pyside6绘制表盘和数字时钟的方法

本文分享一下pyside6/pyqt绘制时钟(表盘钟、数字钟)的方法,通过QLCDNumber控件和QPainter的一些绘图方法,可以解决。

HiKariのTechLab 855

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python run什么都没有_求助大佬问题:运行代码之后什么都没有显示什么情况?...

该楼层疑似违规已被系统折叠隐藏此楼查看此楼from PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *import sys,timeclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWind...

weixin_35282584的博客 434

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

PyQt开发实战: 利用QToolBox开发的桌面工具箱

老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一、引言 toolBox工具箱是一个容器部件,对应类为QToolBox,在其内有一列从上到下顺序排列的标签部件项(tabbed widget item),具体请见《PyQt(Python+Qt)学习随笔:工具箱(QToolBox)的用途及标签部件项(tabbed widget item)作用介绍...

老猿Python 2350

动态指针时钟:利用pyqt5制作指针钟表显示实时时间,细节爆炸

painter.translate(self.width() / 2, self.height() / 2)painter.scale(int(min_size / 200), int(min_size / 200))painter.save()‘’‘绘制时钟表盘的时间刻度线’‘’for a in range(0, 60):if (a % 5) != 0:painter.setPen(min_color)painter.drawLine(92, 0, 96, 0)else:painter.setPen(ho

2401_84254087的博客 1117

Mi-Create:免费开源的小米手表表盘制作工具,零基础也能做出自己的表盘

每天早上抬腕看时间,却发现手上的小米手表只能用那几款自带表盘?Mi-Create 是一个免费开源的小米穿戴设备表盘设计工具,专为 2021 年及之后生产的小米穿戴设备打造。它把"画背景、摆时钟、调图层、看预览、导出装机"整套流程做成了一个可视化界面,不用写一行代码,新手拖拖拽拽就能做出可以直接装到手表、手环上的表盘。 [![Mi-Create 小米手表表盘设计工具启动画面](https://ra

gitblog_00872的博客 201

python数码时钟代码_Python+Pyqt实现简单GUI电子时钟

本文实例为大家分享了Python+Pyqt实现简单GUI电子时钟的具体代码,供大家参考,具体内容如下突发奇想想用GUI做一个简单的电子时钟界面,利用pyqt模块也很方便,代码如下:from PyQt5.QtGui import *from PyQt5.QtCore import *from PyQt5.QtWidgets import QWidget,QApplication,QLCDNumber...

weixin_39999586的博客 658
上一篇: Python - 爬虫爬取和登陆github
下一篇: python - 根据表达式打印真值表
Korpse
博客等级 码龄9年 115粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值