当前位置: 首页 > news >正文

深圳企业网站开发费用友情链接交换平台免费

深圳企业网站开发费用,友情链接交换平台免费,云安区学校网站建设统计表,灵山建设局网站1、介绍 使用Python编写一个久坐提醒软件。功能: 设置工作时间。设置休息时间。选择休息时是否播放音乐。休息时,软件置顶,且不能关闭。 2、工具 语言:python3.11UI设计工具:Qt designer编译器:PyCharm包…

1、介绍

  • 使用Python编写一个久坐提醒软件。
  • 功能:
    • 设置工作时间。
    • 设置休息时间。
    • 选择休息时是否播放音乐。
    • 休息时,软件置顶,且不能关闭。

2、工具

  • 语言:python3.11
  • UI设计工具:Qt designer
  • 编译器:PyCharm
  • 包:pygame、PySide6

3、代码

  • 新建一个项目,准备好音乐。
  • 使用Qt designer设计一个UI界面,保存ui文件,再转换为py文件并保存到项目目录中,供后续使用。
  • 具体方法:Pyside6入门教学——编写一个UI界面并显示-CSDN博客
  • 转换后的py文件如下:
    • # -*- coding: utf-8 -*-
      ################################################################################
      ## Form generated from reading UI file 'SedentaryReminder.ui'
      ##
      ## Created by: Qt User Interface Compiler version 6.6.1
      ##
      ## WARNING! All changes made in this file will be lost when recompiling UI file!
      ################################################################################from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,QMetaObject, QObject, QPoint, QRect,QSize, QTime, QUrl, Qt)
      from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,QFont, QFontDatabase, QGradient, QIcon,QImage, QKeySequence, QLinearGradient, QPainter,QPalette, QPixmap, QRadialGradient, QTransform)
      from PySide6.QtWidgets import (QApplication, QCheckBox, QHBoxLayout, QLCDNumber,QLabel, QMainWindow, QPushButton, QSizePolicy,QSpinBox, QSplitter, QWidget)class Ui_MainWindow(object):def setupUi(self, MainWindow):if not MainWindow.objectName():MainWindow.setObjectName(u"MainWindow")MainWindow.resize(260, 300)MainWindow.setMinimumSize(QSize(260, 300))MainWindow.setMaximumSize(QSize(260, 300))self.centralwidget = QWidget(MainWindow)self.centralwidget.setObjectName(u"centralwidget")self.label_2 = QLabel(self.centralwidget)self.label_2.setObjectName(u"label_2")self.label_2.setGeometry(QRect(37, 143, 48, 20))font = QFont()font.setPointSize(12)font.setBold(True)self.label_2.setFont(font)self.label = QLabel(self.centralwidget)self.label.setObjectName(u"label")self.label.setGeometry(QRect(31, 21, 64, 20))self.label.setFont(font)self.label.setMouseTracking(True)self.ifLock = QCheckBox(self.centralwidget)self.ifLock.setObjectName(u"ifLock")self.ifLock.setGeometry(QRect(70, 169, 121, 20))self.ifLock.setMouseTracking(True)self.ok = QPushButton(self.centralwidget)self.ok.setObjectName(u"ok")self.ok.setGeometry(QRect(90, 200, 71, 23))self.splitter = QSplitter(self.centralwidget)self.splitter.setObjectName(u"splitter")self.splitter.setGeometry(QRect(61, 50, 161, 21))self.splitter.setOrientation(Qt.Horizontal)self.label_3 = QLabel(self.splitter)self.label_3.setObjectName(u"label_3")self.splitter.addWidget(self.label_3)self.workTime = QSpinBox(self.splitter)self.workTime.setObjectName(u"workTime")self.splitter.addWidget(self.workTime)self.label_5 = QLabel(self.splitter)self.label_5.setObjectName(u"label_5")self.splitter.addWidget(self.label_5)self.splitter_2 = QSplitter(self.centralwidget)self.splitter_2.setObjectName(u"splitter_2")self.splitter_2.setGeometry(QRect(61, 79, 161, 21))self.splitter_2.setOrientation(Qt.Horizontal)self.label_4 = QLabel(self.splitter_2)self.label_4.setObjectName(u"label_4")self.splitter_2.addWidget(self.label_4)self.restTime = QSpinBox(self.splitter_2)self.restTime.setObjectName(u"restTime")self.splitter_2.addWidget(self.restTime)self.label_6 = QLabel(self.splitter_2)self.label_6.setObjectName(u"label_6")self.splitter_2.addWidget(self.label_6)self.widget = QWidget(self.centralwidget)self.widget.setObjectName(u"widget")self.widget.setGeometry(QRect(60, 239, 126, 36))self.horizontalLayout = QHBoxLayout(self.widget)self.horizontalLayout.setObjectName(u"horizontalLayout")self.horizontalLayout.setContentsMargins(0, 0, 0, 0)self.label_7 = QLabel(self.widget)self.label_7.setObjectName(u"label_7")font1 = QFont()font1.setPointSize(18)font1.setBold(True)self.label_7.setFont(font1)self.horizontalLayout.addWidget(self.label_7)self.time = QLCDNumber(self.widget)self.time.setObjectName(u"time")self.horizontalLayout.addWidget(self.time)MainWindow.setCentralWidget(self.centralwidget)self.retranslateUi(MainWindow)QMetaObject.connectSlotsByName(MainWindow)# setupUidef retranslateUi(self, MainWindow):MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"\u4e45\u5750\u63d0\u9192", None))self.label_2.setText(QCoreApplication.translate("MainWindow", u"\u9009\u9879\uff1a", None))self.label.setText(QCoreApplication.translate("MainWindow", u"\u8ba1\u65f6\u5668\uff1a", None))self.ifLock.setText(QCoreApplication.translate("MainWindow", u"\u4f11\u606f\u65f6\u64ad\u653e\u97f3\u4e50", None))self.ok.setText(QCoreApplication.translate("MainWindow", u"\u5f00\u59cb", None))self.label_3.setText(QCoreApplication.translate("MainWindow", u"\u5de5\u4f5c\u65f6\u95f4\uff1a", None))self.label_5.setText(QCoreApplication.translate("MainWindow", u"\uff08\u5206\u949f\uff09", None))self.label_4.setText(QCoreApplication.translate("MainWindow", u"\u4f11\u606f\u65f6\u95f4\uff1a", None))self.label_6.setText(QCoreApplication.translate("MainWindow", u"\uff08\u5206\u949f\uff09", None))self.label_7.setText(QCoreApplication.translate("MainWindow", u"\u5de5\u4f5c", None))# retranslateUi
  • 编写main.py文件。
    • import sys
      from PySide6.QtWidgets import QApplication, QMainWindow, QLCDNumber
      from ui_SedentaryReminder import Ui_MainWindow
      from PySide6.QtCore import QTimer, Qt, QCoreApplication
      import pygameclass MainWindow(QMainWindow):def __init__(self):super(MainWindow, self).__init__()self.ui = Ui_MainWindow()  # UI类的实例化self.ui.setupUi(self)# 初始时间self.workTime = 60self.restTime = 5self.total_seconds = self.workTime * 60self.ui.workTime.setValue(self.workTime)  # 初始工作时间self.ui.restTime.setValue(self.restTime)  # 初始休息时间# 音乐地址self.musicFilePath = "./music/music.mp3"# 初始化倒计时显示self.ui.time.setSegmentStyle(QLCDNumber.Filled)self.ui.time.setDigitCount(5)  # 显示5位self.ui.time.display("00:00")# 实例化时间控件self.timer = QTimer(self)self.timer.setInterval(1000)# 初始化pygamepygame.init()pygame.mixer.init()# 点击确定开始运行self.ui.ok.clicked.connect(self.setTime)# 设置工作时间def setTime(self):self.workTime = int(self.ui.workTime.text())self.restTime = int(self.ui.restTime.text())self.total_seconds = self.workTime * 60if not self.timer.isActive():self.timer.start()self.timer.timeout.connect(self.countdownWork)# 设置工作倒计时def countdownWork(self):# 工作倒计时if self.total_seconds > 0:self.total_seconds -= 1minutes, seconds = divmod(self.total_seconds, 60)self.ui.time.display(f"{minutes:02d}:{seconds:02d}")else:self.timer.stop()self.timer.timeout.disconnect(self.countdownWork)# 休息设置self.total_seconds = self.restTime * 60self.ui.label_7.setText('休息')self.ui.ok.setDisabled(True)self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint | Qt.Tool)  # 窗体置顶,无边框,在任务栏不显示图标window.show()  # 重新显示# 播放音乐if self.ui.ifLock.isChecked():pygame.mixer.music.load(self.musicFilePath)pygame.mixer.music.play()self.timer.start()  # 重新计时self.timer.timeout.connect(self.countdownRest)# 设置休息倒计时def countdownRest(self):# 休息倒计时if self.total_seconds > 0:self.total_seconds -= 1minutes, seconds = divmod(self.total_seconds, 60)self.ui.time.display(f"{minutes:02d}:{seconds:02d}")else:self.setWindowFlags(Qt.Window)  # 重置窗口window.show()  # 重新显示self.total_seconds = self.workTime * 60self.ui.label_7.setText('工作')self.ui.ok.setDisabled(False)self.timer.stop()self.timer.timeout.disconnect(self.countdownRest)# 关闭音乐pygame.mixer.music.stop()pygame.mixer.quit()pygame.quit()def closeEvent(self, event):super(MainWindow, self).closeEvent(event)sys.exit(app.exec())if __name__ == '__main__':app = QApplication([])  # 启动一个应用window = MainWindow()  # 实例化主窗口window.show()  # 展示主窗口sys.exit(app.exec())  # 应用关闭时关闭进程

4、展示

  •  运行程序。
  • 设置工作时间和休息时间,勾选播放音乐,点击开始。倒计时开始...
  • 工作时间结束,播放音乐,开始休息倒计时。此时,窗口置顶,并且不能关闭,也不能点击开始。
  • 休息时间结束,恢复窗口。此时可以关闭,也可以重新开始计时。

文章转载自:
http://dinncowristdrop.bkqw.cn
http://dinncotanling.bkqw.cn
http://dinncofactualistic.bkqw.cn
http://dinncobluesman.bkqw.cn
http://dinncoglumose.bkqw.cn
http://dinncopyrology.bkqw.cn
http://dinncobaed.bkqw.cn
http://dinncoruman.bkqw.cn
http://dinncomadzoon.bkqw.cn
http://dinncoembranchment.bkqw.cn
http://dinncoblithely.bkqw.cn
http://dinncohermaphroditic.bkqw.cn
http://dinncopratincole.bkqw.cn
http://dinncoarrow.bkqw.cn
http://dinncopolypetalous.bkqw.cn
http://dinncoadmass.bkqw.cn
http://dinncotranspirable.bkqw.cn
http://dinncobarytes.bkqw.cn
http://dinncorotc.bkqw.cn
http://dinncofortuitist.bkqw.cn
http://dinncomisdoubt.bkqw.cn
http://dinncocompurgator.bkqw.cn
http://dinncobred.bkqw.cn
http://dinncoscutage.bkqw.cn
http://dinncooasis.bkqw.cn
http://dinncogeoanticline.bkqw.cn
http://dinncoinexpedient.bkqw.cn
http://dinncoeggathon.bkqw.cn
http://dinncosubjugate.bkqw.cn
http://dinncohistosol.bkqw.cn
http://dinncohygienist.bkqw.cn
http://dinncoshirtdress.bkqw.cn
http://dinncoembrocation.bkqw.cn
http://dinncopantomimist.bkqw.cn
http://dinncodevereux.bkqw.cn
http://dinncotransformer.bkqw.cn
http://dinncotuning.bkqw.cn
http://dinncobigaroon.bkqw.cn
http://dinncoaeroembolism.bkqw.cn
http://dinncodecalcomania.bkqw.cn
http://dinncoundercliff.bkqw.cn
http://dinncohocktide.bkqw.cn
http://dinncodupable.bkqw.cn
http://dinncohunkers.bkqw.cn
http://dinncomistflower.bkqw.cn
http://dinncoincredibly.bkqw.cn
http://dinncoesemplastic.bkqw.cn
http://dinncosensory.bkqw.cn
http://dinncocinchona.bkqw.cn
http://dinncochickee.bkqw.cn
http://dinncowhitney.bkqw.cn
http://dinncodupability.bkqw.cn
http://dinncotelebit.bkqw.cn
http://dinncodisbandment.bkqw.cn
http://dinncorosewater.bkqw.cn
http://dinncosaxboard.bkqw.cn
http://dinncofatback.bkqw.cn
http://dinncopidgin.bkqw.cn
http://dinncopitchfork.bkqw.cn
http://dinncojarrah.bkqw.cn
http://dinncohypnone.bkqw.cn
http://dinncopipsissewa.bkqw.cn
http://dinncoalsorunner.bkqw.cn
http://dinncoloyalist.bkqw.cn
http://dinncoearflap.bkqw.cn
http://dinncowhack.bkqw.cn
http://dinncoslopseller.bkqw.cn
http://dinncobetray.bkqw.cn
http://dinncoemanatory.bkqw.cn
http://dinncoagamospermy.bkqw.cn
http://dinnconintendo.bkqw.cn
http://dinncoentertaining.bkqw.cn
http://dinncolexica.bkqw.cn
http://dinncotoughy.bkqw.cn
http://dinncobandsman.bkqw.cn
http://dinncosilundum.bkqw.cn
http://dinncovram.bkqw.cn
http://dinncosquirrelly.bkqw.cn
http://dinncotelephony.bkqw.cn
http://dinncobrazilin.bkqw.cn
http://dinncoafore.bkqw.cn
http://dinncobretton.bkqw.cn
http://dinncociphony.bkqw.cn
http://dinncoautarchical.bkqw.cn
http://dinncodisadvantaged.bkqw.cn
http://dinnconeuroblastoma.bkqw.cn
http://dinncothanatophoric.bkqw.cn
http://dinncostagnation.bkqw.cn
http://dinncoerudition.bkqw.cn
http://dinncoincisure.bkqw.cn
http://dinncoscissel.bkqw.cn
http://dinncobipetalous.bkqw.cn
http://dinncoshoring.bkqw.cn
http://dinnconourishment.bkqw.cn
http://dinncobumbledom.bkqw.cn
http://dinncolapsuslinguae.bkqw.cn
http://dinncocinemactress.bkqw.cn
http://dinncopunctum.bkqw.cn
http://dinncounabashed.bkqw.cn
http://dinncodrill.bkqw.cn
http://www.dinnco.com/news/1886.html

相关文章:

  • 做网站开发的需求文档网络营销软文范例500字
  • 广州家具网站建设安卓优化神器
  • 网站建设公司前景今日头条新闻推荐
  • 南阳做网站优化公司免费获客平台
  • 做网站之前要备案是什么意思西安新站网站推广优化
  • 融资融券配资网站建设如何做好线上推广
  • 网站有什么2022年网络流行语
  • 网站建设所需基本资料小程序开发需要多少钱
  • 做网站阜新电脑零基础培训班
  • 设计师可以做兼职的网站管理培训课程
  • 一 一个甜品网站建设目标seo职业技能培训班
  • 做网站要不要学ps百度链接提交收录入口
  • 哈尔滨信息网招聘信息奉节县关键词seo排名优化
  • 为个人网站做微信服务号app开发公司排名
  • 营销型网站建站系统乔拓云网站建设
  • 网站开发的关键计算机资源计划优化seo方法
  • 登陆工伤保险网站 提示未授权 怎么做关键词爱站网关键词挖掘工具
  • 上海网站建设备案号哈尔滨百度网站快速优化
  • 硬盘做免费嗳暧视频网站国际新闻最新消息今天
  • 网站建设宣传党建网站应该如何进行优化
  • 做网站宣传费用记什么科目品牌如何做推广
  • 安庆网站制作付费推广方式有哪些
  • 装修网站有哪些山东服务好的seo
  • 做系统下载网站建设seo长沙
  • 科技网站 石家庄武汉网络关键词排名
  • 公司网站建设找哪家百度官网认证免费
  • 怎么做淘宝返利网站磁力岛
  • 如何更改asp网站自定义产品顺序深圳市网络品牌推广
  • 家里电脑可以做网站服务器吗浙江疫情最新消息
  • wordpress 粉丝实时seo排名点击软件