代码之家  ›  专栏  ›  技术社区  ›  thanuja

我正在用Python和GUI制作一个闹钟。即使程序关闭,我也能用cron作业在时间到来时报警吗

  •  0
  • thanuja  · 技术社区  · 2 年前

    现在我想在用户输入时间时按一下铃。我应该用哪个图书馆来做这件事?我想将程序设置为即使在应用程序关闭时也能运行。

    2 回复  |  直到 2 年前
        1
  •  1
  •   Kacper Podpora    2 年前

    播放音乐

    Python中有不同的音乐播放方法,我最喜欢的是Pygame,它是一组跨平台的Python模块,专为编写视频游戏而设计。

    import pygame
    
    def play_music(file_path):
        pygame.mixer.init()
        pygame.mixer.music.load(file_path)
        pygame.mixer.music.play()
    
    # Replace "your_alarm_sound.mp3" with the path to your alarm sound file
    play_music("your_alarm_sound.mp3")
    

    正在运行后台作业

    要在不关闭应用程序的情况下运行代码,请使用Tkinter的iconify()方法:

    import tkinter as tk
    
    root = tk.Tk()
    root.title("App")
    
    # Minimize window
    root.iconify()
    
    root.mainloop()
    

    接下来,要在指定时间运行后台作业,可以使用 schedule 图书馆

    下面是一个示例代码:

    
    import schedule
    import threading
    import time
    
    def my_task():
        print("Alarm!")
    
    # Schedule the task to run every day at 10:30 AM
    schedule.every().day.at("10:30").do(my_task)
    
    def run_schedule(self):
        while True:
            schedule.run_pending()
            time.sleep(1)
    
    alarm_thread = Thread(target=run_schedule)
    alarm_thread.start()
    alarm_thread.join()
    
        2
  •  0
  •   adkop    2 年前
    • 要制作GUI,我建议您使用: Tkinter 这是一种非常快速且对初学者友好的方法,可以在python中创建UI。
    • 敲钟我会用 Pysound 你可以用它做很多事情,比如播放振荡波、使用集成声音或播放文件。
    • 现在,要使它在关闭这里的GUI后也能工作,就变得很棘手了。因为您不能在与GUI相同的进程中运行计时器,因为当您关闭GUI时,将终止进程。python中有一个库,名为 Multiprocessing 创建一个独立的进程,即使在关闭GUI时也会运行:
    import multiprocessing
    
    def alarm_process_entrypoint(time_to_ring):
        while True:
            None # ToDo chek if time.now() >= time_to_ring
    
    # Create a new alarm process set target (entrypoint) and pass the set_time as your argument to the alarm alarm_process_entrypoint()
    alarm = multiprocessing.Process(target=alarm_process_entrypoint, args=(set_time,))
    alarm.start()
    

    如果这个答案有帮助,请接受这个答案