中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Python和Tkinter制作一個簡單的鬧鐘程序

發布時間:2023-04-21 16:51:52 來源:億速云 閱讀:89 作者:iii 欄目:編程語言

本文小編為大家詳細介紹“怎么用Python和Tkinter制作一個簡單的鬧鐘程序”,內容詳細,步驟清晰,細節處理妥當,希望這篇“怎么用Python和Tkinter制作一個簡單的鬧鐘程序”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

現在讓我們逐個解釋每個代碼塊的作用。

from tkinter import *
import datetime
import time
import winsound
from threading import *

首先,我們導入了 tkinter 庫、datetime、time 庫、winsound 庫以及 threading 庫。

root = Tk()
root.geometry("400x200")

創建一個名為 root 的窗口,并設置窗口大小為 400x200。

def Threading():
    t1=Thread(target=alarm)
    t1.start()

定義一個函數 Threading(),它將創建一個名為 t1 的新線程,該線程的目標是運行 alarm() 函數,并啟動該線程。

def alarm():
    while True:
        set_alarm_time = f"{hour.get()}:{minute.get()}:{second.get()}"
        time.sleep(1)
        current_time = datetime.datetime.now().strftime("%H:%M:%S")
        print(current_time,set_alarm_time)
        if current_time == set_alarm_time:
            print("Time to Wake up")
            winsound.PlaySound("sound.wav",winsound.SND_ASYNC)

這個函數 alarm() 是在一個單獨的線程中運行的,該線程每隔一秒鐘檢查一次當前時間是否等于設置的時間。如果當前時間和設置時間相等,就會調用 winsound.PlaySound() 播放一個音樂文件,表示時間到了。

在函數開頭,首先通過 hour.get()、minute.get() 和 second.get() 獲取用戶在界面上設置的小時、分鐘和秒數,然后將它們組合成一個字符串 set_alarm_time。接下來,使用 time.sleep() 讓線程休眠 1 秒鐘,這樣每隔 1 秒鐘就會檢查一次當前時間是否等于設置時間。

然后,通過 datetime.datetime.now().strftime("%H:%M:%S") 獲取當前時間,并將其格式化為小時、分鐘和秒數的字符串 current_time。最后,如果 current_time 等于 set_alarm_time,就會打印一條消息并調用 winsound.PlaySound() 播放一個音樂文件。

Label(root,text="Alarm Clock",font=("Helvetica 20 bold"),fg="red").pack(pady=10)
Label(root,text="Set Time",font=("Helvetica 15 bold")).pack()

frame = Frame(root)
frame.pack()

hour = StringVar(root)
hours = ('00', '01', '02', '03', '04', '05', '06', '07',
		'08', '09', '10', '11', '12', '13', '14', '15',
		'16', '17', '18', '19', '20', '21', '22', '23', '24'
		)
hour.set(hours[0])

hrs = OptionMenu(frame, hour, *hours)
hrs.pack(side=LEFT)

minute = StringVar(root)
minutes = ('00', '01', '02', '03', '04', '05', '06', '07',
		'08', '09', '10', '11', '12', '13', '14', '15',
		'16', '17', '18', '19', '20', '21', '22', '23',
		'24', '25', '26', '27', '28', '29', '30', '31',
		'32', '33', '34', '35', '36', '37', '38', '39',
		'40', '41', '42', '43', '44', '45', '46', '47',
		'48', '49', '50', '51', '52', '53', '54', '55',
		'56', '57', '58', '59', '60')
minute.set(minutes[0])

mins = OptionMenu(frame, minute, *minutes)
mins.pack(side=LEFT)

second = StringVar(root)
seconds = ('00', '01', '02', '03', '04', '05', '06', '07',
		'08', '09', '10', '11', '12', '13', '14', '15',
		'16', '17', '18', '19', '20', '21', '22', '23',
		'24', '25', '26', '27', '28', '29', '30', '31',
		'32', '33', '34', '35', '36', '37', '38', '39',
		'40', '41', '42', '43', '44', '45', '46', '47',
		'48', '49', '50', '51', '52', '53', '54', '55',
		'56', '57', '58', '59', '60')
second.set(seconds[0])

secs = OptionMenu(frame, second, *seconds)
secs.pack(side=LEFT)

Button(root,text="Set Alarm",font=("Helvetica 15"),command=Threading).pack(pady=20)

這段代碼用于添加標簽、框架、按鈕和選項菜單。先創建了一個框架 frame,然后創建了三個 StringVar 類型的變量 hour,minute,second 來存儲用戶選擇的小時、分鐘和秒數。然后定義了三個元組 hours,minutes,seconds 分別存儲 00 到 60 的數字字符串,其中的 0~9 數字前面補零,保證格式一致。接著用 OptionMenu 創建了三個選項菜單,分別用來選擇小時、分鐘和秒數。

綜上所述,本文提供了一個基本的鬧鐘應用程序,可以通過GUI界面設置和啟動。當鬧鐘時間到達時,應用程序將播放聲音,以提醒用戶。

附完整源碼:

# 導入所需庫
from tkinter import *
import datetime
import time
import winsound
from threading import *

# 創建對象
root = Tk()

# 設置幾何體
root.geometry("400x200")

# 使用線程
def Threading():
	t1=Thread(target=alarm)
	t1.start()

def alarm():
	# 無限循環
	while True:
		# 設置警報
		set_alarm_time = f"{hour.get()}:{minute.get()}:{second.get()}"

		# 等待一秒鐘
		time.sleep(1)

		# 獲取當前時間
		current_time = datetime.datetime.now().strftime("%H:%M:%S")
		print(current_time,set_alarm_time)

		# 檢查設置的報警是否等于當前時間
		if current_time == set_alarm_time:
			print("Time to Wake up")
			# 播放聲音
			winsound.PlaySound("sound.wav",winsound.SND_ASYNC)

# 添加標簽、框架、按鈕、選項菜單
Label(root,text="Alarm Clock",font=("Helvetica 20 bold"),fg="red").pack(pady=10)
Label(root,text="Set Time",font=("Helvetica 15 bold")).pack()

frame = Frame(root)
frame.pack()

hour = StringVar(root)
hours = ('00', '01', '02', '03', '04', '05', '06', '07',
		'08', '09', '10', '11', '12', '13', '14', '15',
		'16', '17', '18', '19', '20', '21', '22', '23', '24'
		)
hour.set(hours[0])

hrs = OptionMenu(frame, hour, *hours)
hrs.pack(side=LEFT)

minute = StringVar(root)
minutes = ('00', '01', '02', '03', '04', '05', '06', '07',
		'08', '09', '10', '11', '12', '13', '14', '15',
		'16', '17', '18', '19', '20', '21', '22', '23',
		'24', '25', '26', '27', '28', '29', '30', '31',
		'32', '33', '34', '35', '36', '37', '38', '39',
		'40', '41', '42', '43', '44', '45', '46', '47',
		'48', '49', '50', '51', '52', '53', '54', '55',
		'56', '57', '58', '59', '60')
minute.set(minutes[0])

mins = OptionMenu(frame, minute, *minutes)
mins.pack(side=LEFT)

second = StringVar(root)
seconds = ('00', '01', '02', '03', '04', '05', '06', '07',
		'08', '09', '10', '11', '12', '13', '14', '15',
		'16', '17', '18', '19', '20', '21', '22', '23',
		'24', '25', '26', '27', '28', '29', '30', '31',
		'32', '33', '34', '35', '36', '37', '38', '39',
		'40', '41', '42', '43', '44', '45', '46', '47',
		'48', '49', '50', '51', '52', '53', '54', '55',
		'56', '57', '58', '59', '60')
second.set(seconds[0])

secs = OptionMenu(frame, second, *seconds)
secs.pack(side=LEFT)

Button(root,text="Set Alarm",font=("Helvetica 15"),command=Threading).pack(pady=20)

# 執行Tkinter	
root.mainloop()

讀到這里,這篇“怎么用Python和Tkinter制作一個簡單的鬧鐘程序”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屏边| 桂阳县| 册亨县| 绥中县| 汶上县| 海盐县| 陈巴尔虎旗| 富源县| 潮州市| 上虞市| 新竹市| 广德县| 伽师县| 盘山县| 陆河县| 福泉市| 永济市| 泰州市| 沂水县| 阳江市| 沙洋县| 古丈县| 湘阴县| 资兴市| 内黄县| 慈利县| 克山县| 昌江| 中卫市| 蒲城县| 外汇| 邛崃市| 安陆市| 海城市| 祁连县| 青川县| 金山区| 江油市| 阳曲县| 云梦县| 苗栗县|