通过PyQt5实现设置一个小闹钟的性能,到了设置的工夫后能够响起一段音乐来揭示。

【浏览全文】

须要小闹钟残缺源代码,到文末获取下载链接。

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

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

导入利用操作相干的模块

import sysfrom 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可执行程序...