欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用Python做一個(gè)電腦通知小工具

 更新時(shí)間:2022年12月29日 16:24:38   作者:嗨學(xué)編程  
Windows不是有個(gè)消息通知功能,挺喜歡這個(gè)功能的,但是不太方便使用,也懶得去研究,于是準(zhǔn)備用Python自己寫一個(gè),感興趣的可以了解一下

序言

Windows不是有個(gè)消息通知功能,挺喜歡這個(gè)功能的,但是不太方便使用,也懶得去研究,于是準(zhǔn)備用Python自己寫一個(gè),通過設(shè)定通知的間隔時(shí)間來實(shí)現(xiàn)類似鬧鐘的效果,這樣既不用聽鬧鐘的吵鬧聲,又做到了定時(shí)通知的效果,比如定時(shí)通知埋頭寫代碼的我們按時(shí)喝水。

說干就干,直接使用pyqt來設(shè)計(jì)成人人都可以用的工具。

效果展示

代碼實(shí)戰(zhàn)

UI部分使用的包

from PyQt5.QtGui import *  # UI 界面相關(guān)
from PyQt5.QtCore import *  # 核心組件包
from PyQt5.QtWidgets import *  # UI 布局相關(guān)模塊

界面主題相關(guān)的模塊,這里采用的是黑色的模塊主題。

from qdarkstyle import load_stylesheet_pyqt5

應(yīng)用相關(guān)的模塊

import sys
import os

下面幾個(gè)模塊中唯一比較特殊的就是win10toast模塊是用來做windows通知的,

還有一個(gè)用到了python線程中的定時(shí)器。

from win10toast import ToastNotifier  # 導(dǎo)入系統(tǒng)通知對(duì)象
import time  # 系統(tǒng)時(shí)間模塊
import datetime
from threading import Timer  # 定時(shí)器

主要代碼

class WinNotify(QWidget):
    def __init__(self):
        super(WinNotify, self).__init__()
        self.init_ui()

    def init_ui(self):
        self.setWindowTitle('windows通知管理器 源碼自取君羊708525271')
        self.setWindowIcon(QIcon('通知.ico'))
        self.setFixedWidth(550)

        self.notify_subject_label = QLabel()
        self.notify_subject_label.setText('通知主題')

        self.notify_subject_text = QLineEdit()
        self.notify_subject_text.setPlaceholderText('輸入通知主題')

        self.notify_current_label = QLabel()
        self.notify_current_label.setText('通知內(nèi)容')

        self.notify_current_text = QLineEdit()
        self.notify_current_text.setPlaceholderText('輸入通知內(nèi)容')

        self.notify_time_label = QLabel()
        self.notify_time_label.setText('通知間隔')

        self.notify_time_combox = QComboBox()
        self.notify_time_combox.addItems(['10|分鐘', '30|分鐘', '45|分鐘', '60|分鐘', '120|分鐘'])

        self.notify_icon_path = QLineEdit()
        self.notify_icon_path.setPlaceholderText('通知圖標(biāo)(*.ico)')

        self.notify_icon_btn = QPushButton()
        self.notify_icon_btn.setText('選擇圖標(biāo)')
        self.notify_icon_btn.clicked.connect(self.notify_icon_btn_click)

        self.start_btn = QPushButton()
        self.start_btn.setText('開啟通知吧!')
        self.start_btn.clicked.connect(self.start_btn_click)

        form = QFormLayout()
        form.addRow(self.notify_subject_label, self.notify_subject_text)
        form.addRow(self.notify_current_label, self.notify_current_text)
        form.addRow(self.notify_time_label, self.notify_time_combox)
        form.addRow(self.notify_icon_path, self.notify_icon_btn)

        vbox = QVBoxLayout()
        vbox.addLayout(form)
        vbox.addWidget(self.start_btn)

        self.thread_ = WorkThread(self)

        self.setLayout(vbox)

    def notify_icon_btn_click(self):
        file = QFileDialog.getOpenFileName(self, os.getcwd(), '打開圖片', 'ICO File(*.ico)')
        print(file[0])
        self.notify_icon_path.setText(file[0])

    def start_btn_click(self):
        self.start_btn.setEnabled(False)
        self.thread_.start()

主函數(shù)啟動(dòng)應(yīng)用時(shí),將黑色主題加入到app的布局當(dāng)中。

app.setStyleSheet(load_stylesheet_pyqt5())

線程運(yùn)行相關(guān)部分

class WorkThread(QThread):
    def __init__(self,parent=None):
        super(WorkThread, self).__init__(parent)
        self.parent = parent
        self.notify = ToastNotifier()
        self.working = True

    def __del__(self):
        self.working = False
        self.wait()

    def run(self):
        self.show_toast()

    def show_toast(self):
        notify_head = self.parent.notify_subject_text.text()
        notify_text = self.parent.notify_current_text.text()
        notify_ico = self.parent.notify_icon_path.text()
        notify_sen = self.parent.notify_time_combox.currentText().split('|')[0]
        notify_sen = int(notify_sen) * 60
        print('當(dāng)前時(shí)間:%s' % (datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
        self.notify.show_toast(f"{notify_head}", f"{notify_text}", duration=5, threaded=True, icon_path=notify_ico)
        while self.notify.notification_active():
            time.sleep(0.005)
        timer = Timer(notify_sen, self.show_toast)
        timer.start()

到此這篇關(guān)于利用Python做一個(gè)電腦通知小工具的文章就介紹到這了,更多相關(guān)Python電腦通知工具內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Python編寫一個(gè)刷題練習(xí)系統(tǒng)

    基于Python編寫一個(gè)刷題練習(xí)系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了如何基于Python語言編寫一個(gè)簡單的刷題練習(xí)系統(tǒng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-02-02
  • Python實(shí)現(xiàn)堆排序的方法詳解

    Python實(shí)現(xiàn)堆排序的方法詳解

    這篇文章主要介紹了Python實(shí)現(xiàn)堆排序的方法,結(jié)合實(shí)例形式詳細(xì)分析了堆排序的原理,實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2016-05-05
  • Python結(jié)合Sprak實(shí)現(xiàn)計(jì)算曲線與X軸上方的面積

    Python結(jié)合Sprak實(shí)現(xiàn)計(jì)算曲線與X軸上方的面積

    這篇文章主要介紹了Python結(jié)合Sprak實(shí)現(xiàn)計(jì)算曲線與X軸上方的面積,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-02-02
  • Python實(shí)現(xiàn)將HTML轉(zhuǎn)換成doc格式文件的方法示例

    Python實(shí)現(xiàn)將HTML轉(zhuǎn)換成doc格式文件的方法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)將HTML轉(zhuǎn)換成doc格式文件的方法,涉及Python htmlparser及docx模塊的相關(guān)使用技巧,需要的朋友可以參考下
    2017-11-11
  • python對(duì)于requests的封裝方法詳解

    python對(duì)于requests的封裝方法詳解

    今天小編就為大家分享一篇python對(duì)于requests的封裝方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 關(guān)于Python中異常(Exception)的匯總

    關(guān)于Python中異常(Exception)的匯總

    異常是指程序中的例外,違例情況。異常機(jī)制是指程序出現(xiàn)錯(cuò)誤后,程序的處理方法。當(dāng)出現(xiàn)錯(cuò)誤后,程序的執(zhí)行流程發(fā)生改變,程序的控制權(quán)轉(zhuǎn)移到異常處理。下面這篇文章主要匯總了關(guān)于Python中異常(Exception)的相關(guān)資料,需要的朋友可以參考下。
    2017-01-01
  • python使用Tkinter實(shí)現(xiàn)在線音樂播放器

    python使用Tkinter實(shí)現(xiàn)在線音樂播放器

    這篇文章主要為大家詳細(xì)介紹了python使用Tkinter實(shí)現(xiàn)在線音樂播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Python中使用YAML文件進(jìn)行配置文件管理

    Python中使用YAML文件進(jìn)行配置文件管理

    配置文件管理已經(jīng)成為了一個(gè)不可或缺的環(huán)節(jié)。它們包含了程序運(yùn)行所需的各種參數(shù),本文主要介紹了Python中使用YAML文件進(jìn)行配置文件管理,感興趣的可以了解一下
    2023-12-12
  • Python中的引用和拷貝規(guī)律詳解

    Python中的引用和拷貝規(guī)律詳解

    在python中無論是直接的變量賦值,還是參數(shù)傳遞,都是按照引用進(jìn)行賦值的,這篇文章主要給大家介紹了關(guān)于Python中引用和拷貝規(guī)律的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • python實(shí)現(xiàn)人工蜂群算法

    python實(shí)現(xiàn)人工蜂群算法

    這篇文章主要介紹了python如何實(shí)現(xiàn)人工蜂群算法,幫助大家更好的利用python進(jìn)行數(shù)據(jù)分析,感興趣的朋友可以了解下
    2020-09-09

最新評(píng)論