Python利用PyQT5設置鬧鐘功能
通過PyQt5實現(xiàn)設置一個小鬧鐘的功能,到了設置的時間后可以響起一段音樂來提醒。
導入UI界面組件相關的模塊
from PyQt5.QtCore import * from PyQt5.QtWidgets import * from PyQt5.QtGui import *
導入應用操作相關的模塊
import sys from PyQt5.QtMultimedia import *
初始化函數(shù) init_ui() 函數(shù),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) # 設置主布局
創(chuàng)建槽函數(shù) 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)
創(chuàng)建槽函數(shù) timing_his(),監(jiān)聽定時時間是否到達。在定時時間到達時播放音樂,現(xiàn)在代碼塊中總共引入了三首歌曲,需要的可以按照自己喜好添加自己喜歡的歌曲。
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("[{}]:定時時間已經(jīng)到達".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()
創(chuàng)建槽函數(shù) start_btn_click(),將該函數(shù)綁定開始按鈕上用于啟動鬧鐘。
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)
小鬧鐘實現(xiàn)的主要代碼塊就是上面這些了。
補充
還可以不利用PyQT5,直接用Python實現(xiàn)鬧鐘功能,示例代碼如下
音頻文件放入和.py文件同級的目錄下
import winsound # 導入此模塊實現(xiàn)聲音播放功能 import time # 導入此模塊,獲取當前時間 # 提示用戶設置時間和分鐘 my_hour = input("請輸入時:") my_minute = input("請輸入分:") flag = 1 while flag: t = time.localtime() # 當前時間的紀元值 fmt = "%H %M" now = time.strftime(fmt, t) # 將紀元值轉(zhuǎn)化為包含時、分的字符串 now = now.split(' ') #以空格切割,將時、分放入名為now的列表中 hour = now[0] minute = now[1] if hour == my_hour and minute == my_minute: music = 'Good Time.wav' winsound.PlaySound(music, winsound.SND_ALIAS) flag = 0
到此這篇關于Python利用PyQT5設置鬧鐘功能的文章就介紹到這了,更多相關Python PyQT5鬧鐘功能內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Django框架登錄加上驗證碼校驗實現(xiàn)驗證功能示例
這篇文章主要介紹了Django框架登錄加上驗證碼校驗實現(xiàn)驗證功能,結(jié)合實例形式分析了Django框架基于Pillow模塊的圖形驗證碼生成與使用相關操作技巧,需要的朋友可以參考下2019-05-05Pycharm最全報錯的原因與解決方法總結(jié)(推薦!)
這篇文章主要給大家介紹了關于Pycharm最全報錯的原因與解決方法的相關資料,文中記錄了Python各種報錯解釋及處理方法,屬于個人記錄型,需要的朋友可以參考下2022-07-07