技術共有

Python 演習: 目覚まし時計機能を備えた視覚的な動的目覚まし時計の実装

2024-07-12

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


✨✨ Srluaのブログへようこそ(づ ̄3 ̄)づ╭~✨✨

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

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

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

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

📘📚 所属专栏:パイソン

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

​​

​​

目次

ダイナミック目覚まし時計

PyInstaller ライブラリ

実行例:

アラームを設定します。

最初にファイルをパックする

デスクトップにドラッグできます~

win+R、cmdと入力

コマンドラインに「python Clock.py 22-28」と入力します。

完全なコード:


Pythonを使用して動的目覚まし時計を実装する

主な機能は次のとおりです。
1. タートルなどのグラフィックス描画ライブラリを使用して、時、分、秒が異なる色で区別される動的なデジタル管時計を描画します。
2. キーボードから目覚まし時計を設定して、ウィンドウのポップアップリマインダーを実現できます。
3.パスPyインストーラ ライブラリを実行可能ファイルに変換します。

Pyインストーラ 図書館

PyInstaller は、Python アプリケーションをスタンドアロンの実行可能ファイルにパッケージ化するためのライブラリです。

Python スクリプトと関連する依存関係 (ライブラリ、リソース ファイルなど) を 1 つの実行可能ファイルにパッケージ化できるため、ユーザーは 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()

お役に立てば幸いです!来て!

この記事の内容が役立つと思われた場合は、お気軽に高評価を押して購読し、貴重な情報を受け取り続けてください。ご清聴とご支援に心より感謝申し上げます。