美文网首页
做一个小闹钟,按规划做事...

做一个小闹钟,按规划做事...

作者: Python集中营 | 来源:发表于2022-01-10 22:42 被阅读0次

通过PyQt5实现设置一个小闹钟的功能,到了设置的时间后可以响起一段音乐来提醒。

【阅读全文】

file

需要小闹钟完整源代码,到文末获取下载链接。

导入UI界面组件相关的模块

from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *

导入应用操作相关的模块

import sys
from PyQt5.QtMultimedia import *

初始化函数 init_ui() 函数,PyQt5 界面布局使用了三种,分别是垂直化布局、水平化布局、栅格布局。

def init_ui(self):
        self.setWindowTitle("小闹钟")  # 设置应用标题
        self.setWindowIcon(QIcon('clock.ico'))  # 设置应用图标

        form = QFormLayout()  # 初始化一个表单布局

        self.current_date_label = QLabel()
        self.current_date_label.setText("当前时间:")
        self.current_date_label_time = QLabel()
        self.current_date_label_time.setText(QDateTime.currentDateTime().toString('yyyy-MM-dd hh:mm:ss dddd'))
        self.current_timer = QTimer()
        self.current_timer.timeout.connect(self.show_current)
        self.current_timer.start(1000)

        self.timing_date_label = QLabel()
        self.timing_date_label.setText("定时时间:")
        self.timing_date_time = QDateTimeEdit()
        self.timing_date_time.setDisplayFormat("yyyy-MM-dd HH:mm:ss")
        self.timing_date_time.setDateTime(QDateTime.currentDateTime())

        self.set_rightone_label = QLabel()
        self.set_rightone_label.setText("设置铃声:")
        self.set_rightone_box = QComboBox()
        self.set_rightone_box.addItems(["冷漠 - 一路向北 (DJ版)","大城 - 下雪哈尔滨","许巍 - 时光"])

        form.addRow(self.current_date_label,self.current_date_label_time)
        form.addRow(self.timing_date_label,self.timing_date_time)
        form.addRow(self.set_rightone_label,self.set_rightone_box)

        hbox = QHBoxLayout()  # 初始化水平布局

        self.version = QLabel()
        self.version.setText("公众号:[Python 集中营]")

        self.start_btn = QPushButton()
        self.start_btn.setText("开始")
        self.start_btn.clicked.connect(self.start_btn_click)

        hbox.addWidget(self.version)
        hbox.addWidget(self.start_btn)

        vbox = QVBoxLayout()  # 初始化垂直布局
        vbox.addLayout(form)
        vbox.addLayout(hbox)

        self.setLayout(vbox)  # 设置主布局

创建槽函数 show_current(),用于实时显示时间的变化并将时间更新到QLabel组件上面,目前做的是秒级的时间更新。

def show_current(self):
        '''
        刷新当前时间显示、每隔一秒钟刷新
        :return:
        '''
        current_time = QDateTime.currentDateTime().toString('yyyy-MM-dd hh:mm:ss dddd')
        self.current_date_label_time.setText(current_time)

创建槽函数 timing_his(),监听定时时间是否到达。在定时时间到达时播放音乐,现在代码块中总共引入了三首歌曲,需要的可以按照自己喜好添加自己喜欢的歌曲。

def timing_lis(self):
        if QDateTime.currentDateTime() < self.timing_date_time.dateTime():
            print("[{}]:定时时间没有到达".format(QDateTime.currentDateTime().toString('yyyy-MM-dd hh:mm:ss dddd')))
        else:
            print("[{}]:定时时间已经到达".format(QDateTime.currentDateTime().toString('yyyy-MM-dd hh:mm:ss dddd')))
            self.current_timer_lis.stop()
            selected = self.set_rightone_box.currentText()
            print("开始播放音乐:{}".format(selected))
            url = QUrl.fromLocalFile("{}.mp3".format(selected))
            self.player.setMedia(QMediaContent(url))
            self.player.play()

创建槽函数 start_btn_click(),将该函数绑定开始按钮上用于启动闹钟。

def start_btn_click(self):
        self.current_timer_lis = QTimer()
        self.current_timer_lis.timeout.connect(self.timing_lis)
        self.current_timer_lis.start(500)

小闹钟实现的主要代码块就是上面这些了。

【往期精彩】

使用pyqt5的日期控件做一个小日历方便查看...

将几万张图片合成一张图片,制作一个超赞的马赛克图!

小工具批量将mp3音频格式转换为wav格式

python回调函数能做什么?

pyqt5做了一个二维码生成器,已打包成exe可执行程序...

相关文章

  • 做一个小闹钟,按规划做事...

    通过PyQt5实现设置一个小闹钟的功能,到了设置的时间后可以响起一段音乐来提醒。 【阅读全文】[https://m...

  • 新的刻度,又将刻下

    2018飞逝而去,发现手头上的种种都需要好好整理。 做一个30年的远景规划。暂时只规划怎么做事,不规划做什么事。

  • 按规矩做事

    行行有行行的规矩,违反了规矩,要么适得其反,要么吃大亏。 学习上有学习的规矩,该背会的要背会,该写对的要写对,投机...

  • 按流程做事

    想高效就必须按流程做事,按时间节点做事,道理都懂,但实际上要真正做到的话,实际上是需要训练的,而且每件事...

  • 按规则做事

    想要赢得游戏就要懂得游戏的规则,这是我获得简书创作者最大的感受。 申请过几次,但每次都是以失败告终灰心的确是会有的...

  • 2019-12-14

    规划,做事有规划

  • 不按自己的规划做事,很不舒服

    通过昨天的感受,人的生活真的需要规划!时间很有限,则很宝贵!昨天的自己中午和朋友迟到消耗了太长的时间我没有集中在我...

  • 211005 按掉闹钟练习

    它对应于那些已被认出的危险,它们相似于我们按照菜谱放入葱、姜,并注意汤汁的温度。蒸汽是一种提醒,摇晃是另一种,我们...

  • 读书随记-2016

    人家都是按着规划来做事,而自己却总是随着心情做事。 临近年末,转眼2016年也快结束了。想想以前,总觉得才元旦,又...

  • 大学四年时光都去哪儿了

    7:00的闹钟响了,按掉翻个身继续睡。 8:00的闹钟响了,按掉翻个身继续睡。 到了8:40了,距离上课还有1个小...

网友评论

      本文标题:做一个小闹钟,按规划做事...

      本文链接:https://www.haomeiwen.com/subject/iivvcrtx.html