Обмен технологиями

Практика Python: реализация визуального динамического будильника с функцией будильника

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


✨✨ Добро пожаловать в блог Срлуа (づ ̄3 ̄)づ╭~✨✨

🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。

我是Srlua小谢,在这里我会分享我的知识和经验。🎥

希望在这里,我们能一起探索IT世界的奥妙,提升我们的技能。🔮

记得先点赞👍后阅读哦~ 👏👏

📘📚 所属专栏:Питон

欢迎访问我的主页:Srlua小谢 获取更多信息和资源。✨✨🌙🌙

​​

​​

Оглавление

Динамический будильник

Библиотека PyInstaller

Пример выполнения:

Установите будильник:

Сначала упакуйте файлы

Можно перетащить на рабочий стол~

Win+R, введите cmd

Введите в командной строке python clock.py 22-28.

Полный код:


Реализовать динамический будильник с помощью Python

Основные функции заключаются в следующем:
1. Используйте библиотеки графического рисования, такие как черепаха, чтобы нарисовать динамические цифровые ламповые часы, в которых часы, минуты и секунды выделяются разными цветами.
2. Вы можете установить будильник с помощью клавиатуры, чтобы использовать всплывающие напоминания в окне.
3. ПройтиPyInstaller Преобразуйте библиотеку в исполняемый файл.

PyInstaller Библиотека

PyInstaller — это библиотека для упаковки приложений Python в автономные исполняемые файлы.

Он может упаковывать сценарии Python и связанные с ними зависимости (например, библиотеки, файлы ресурсов) в один исполняемый файл, чтобы пользователи могли запускать приложения без установки интерпретатора Python или связанных библиотек. Используя PyInstaller, вы можете легко создавать кроссплатформенные исполняемые файлы, поддерживающие несколько платформ, таких как Windows, Mac и Linux.

Пример выполнения:

Установите будильник:

Сначала упакуйте файлы

Можно перетащить на рабочий стол~

Win+R, введите cmd

Введите в командной строке python clock.py 22-28.

clock.py — это имя файла. Если имя файла отличается, измените его в соответствии с фактическим именем файла.
Это значит напоминание в 22:28

Полный код:

  1. from turtle import *
  2. from datetime import datetime
  3. import time
  4. import sys
  5. from tkinter import messagebox, Tk
  6. def drawGap():
  7. penup()
  8. fd(5)
  9. def drawLine(draw):
  10. drawGap()
  11. pendown() if draw else penup()
  12. fd(40)
  13. drawGap()
  14. right(90)
  15. def drawDigit(d):
  16. speed(0)
  17. drawLine(True) if d in [2, 3, 4, 5, 6, 8, 9] else drawLine(False)
  18. drawLine(True) if d in [0, 1, 3, 4, 5, 6, 7, 8, 9] else drawLine(False)
  19. drawLine(True) if d in [0, 2, 3, 5, 6, 8, 9] else drawLine(False)
  20. drawLine(True) if d in [0, 2, 6, 8] else drawLine(False)
  21. left(90)
  22. drawLine(True) if d in [0, 4, 5, 6, 8, 9] else drawLine(False)
  23. drawLine(True) if d in [0, 2, 3, 5, 6, 7, 8, 9] else drawLine(False)
  24. drawLine(True) if d in [0, 1, 2, 3, 4, 7, 8, 9] else drawLine(False)
  25. left(180)
  26. penup()
  27. fd(20)
  28. def drawDate(date):
  29. pencolor('Red')
  30. for i in date:
  31. if i == "-":
  32. write('时', font=('Arial', 24, 'normal'))
  33. pencolor('Green')
  34. fd(40)
  35. elif i == '=':
  36. write('分', font=('Arial', 24, 'normal'))
  37. pencolor('Blue')
  38. fd(40)
  39. elif i == '+':
  40. write('秒', font=('Arial', 24, 'normal'))
  41. else:
  42. drawDigit(eval(i))
  43. def main(alarm_time=None):
  44. setup(800, 350, 200, 200)
  45. hideturtle()
  46. pensize(8)
  47. tracer(False) # 设置快速模式
  48. root = Tk()
  49. root.withdraw() # 隐藏主窗口
  50. while True:
  51. clear() # 清除之前绘制的内容
  52. penup()
  53. goto(-300, 0)
  54. current_time = datetime.now().strftime('%H-%M=%S+')
  55. drawDate(current_time)
  56. update() # 手动刷新屏幕
  57. if alarm_time and current_time.startswith(alarm_time):
  58. messagebox.showinfo("闹钟提醒", "时间到了!")
  59. alarm_time = None # 清除闹钟时间,防止重复提示
  60. time.sleep(1)
  61. if __name__ == "__main__":
  62. alarm_time = None
  63. if len(sys.argv) > 1:
  64. alarm_time = sys.argv[1] # 获取命令行输入的闹钟时间,格式为 HH-MM
  65. main(alarm_time)
  66. done()

Надеюсь, это вам поможет! ну давай же!

Если вы найдете содержание этой статьи полезным, пожалуйста, поставьте ей палец вверх и подпишитесь, чтобы продолжать получать ценную информацию. Искренне благодарю вас за внимание и поддержку!