對于喜歡用電腦的人來說,
一旦往那里一坐,就很容易忘記時間,
接觸到Python的我們,當然是要自己DIY一個鬧鐘啦,而且一定要醒目!
這個時候我就想到了tkinter
1- 需要的庫:
- tkinter
- datetime
- time
2- tkinter最簡單的使用
import tkinter
root = tkinter.Tk()
root.mainloop()
導入tkinter,實例化一個Tk類,進入主循環,完成,一個窗口就創建好了,
像下面這樣:
3- 無邊框tkinter窗口的創建
root.overrideredirect(True)
把窗口的邊框給去掉,用上面這個函數,參數設置為True就可以了
root.geometry("{0}x{1}+0+0".format(
root.winfo_screenwidth(),
root.winfo_screenheight()))
把窗口的長寬設置為屏幕的長寬,這樣就能鋪滿整個屏幕,醒目!
# 這里用來設定字體,字體本身為黑色,字體背景為白色
tkinter.Label(root, text=word_text, fg='black', bg='white',
# 字體是微軟雅黑, 大小是100
font=('Microsoft YaHei', 100)
# 把label這個控件居中
).place(anchor='center',
relx=0.5,
rely=0.5)
label控件一般是用來顯示文字的,把label居中,
字體設置為微軟雅黑,大小是100,字體顏色是黑色,label控件的顏色為白色
4- 時間的獲取
import datetime
def get_time():
hour = datetime.datetime.now().hour
minute = datetime.datetime.now().minute
return hour, minute
鬧鐘就是在固定的時間提醒你,
所以要獲取現在的時間,和我們設定的時間進行對比,
到了時間,彈出窗口,達到提醒的效果
5- 代碼
import datetime
import time
import tkinter
HOUR = 20 # 幾點
MINUTE = 38 # 幾分
MESSAGE = "是時候睡覺了!"
TIMES = 5 # 提醒多少次
INTERVAL = 2 # 每次彈窗窗口間隔的秒數
class Reminder(object):
def __init__(self, word_text):
# 初始化
self.root = tkinter.Tk()
# 把窗口的邊框給去掉
self.root.overrideredirect(True)
# 設置窗口的大小
self.root.geometry("{0}x{1}+0+0".format(
self.root.winfo_screenwidth(),
self.root.winfo_screenheight()))
# 設置整個窗口的背景為白色
self.root.configure(bg='white')
# 這里用來設定字體,字體本身為黑色,字體背景為白色
tkinter.Label(self.root, text=word_text, fg='black', bg='white',
# 字體是微軟雅黑, 大小是100
font=('Microsoft YaHei', 100)
# label這個控件居中
).place(anchor='center',
relx=0.5,
rely=0.5)
# 在窗口創建之后執行 self.show 這個函數
# 這里這樣處理,才能達到后面窗口顯示2秒再消失的效果
self.root.after_idle(self.show)
def hide(self):
"""
隱藏窗口并退出
"""
self.root.withdraw()
self.root.quit()
def show(self):
"""
顯示窗口,持續2秒鐘
"""
self.root.deiconify()
self.root.after(1000 * 2, self.hide)
def start(self):
"""
進入死循環,這樣窗口才能一直存在
"""
self.root.mainloop()
def get_time():
hour = datetime.datetime.now().hour
minute = datetime.datetime.now().minute
return hour, minute
def prompt():
"""
彈出窗口
"""
root = Reminder(MESSAGE)
root.start()
time.sleep(INTERVAL)
def main():
# 這里的while循環是為了保證時間沒到,腳本不會退出
while True:
hour, minute = get_time()
# 判斷小時數和分鐘數
if hour == HOUR and minute >= MINUTE:
# 一般這里都是一個字母i,
# 我這里純粹就想循環五次
# Python里面就可以用 _ 來替代
for _ in range(TIMES):
prompt()
break
if __name__ == '__main__':
main()
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
True
+關注
關注
0文章
9瀏覽量
11992 -
窗口
+關注
關注
0文章
66瀏覽量
10883 -
函數
+關注
關注
3文章
4345瀏覽量
62872
發布評論請先 登錄
相關推薦
怎樣去設計一個基于單片機的定時鬧鐘
確定修改結束。用掃描方式動態顯示時、分、秒,第2,4 數碼管加小數點,并且要求第4數碼管小數點每秒閃爍一次。可以設置鬧鐘,到時間蜂鳴器報警難點及技巧:1、通過在定時器中斷來設置標志位
發表于 01-13 08:26
【地平線旭日X3派試用體驗】40P接口程序開發體驗-基于Python+Tkinter的串口調試助手
開發,不必關注底層硬件個細節,十分方便高效。本串口調試助手拋磚引玉,后面可以編寫PWM,IO,IIC,SPI等總線的監控或者調試助手,配上圖形界面的上位機程序,甚至可以將本板一舉改造為高效的總線調試工具。
發表于 07-11 23:56
【飛凌RK3568開發板試用體驗】tkinter的第一個桌面程序
:好象是替代pyqt;Wx :是python當中居中的一個圖形化,學習結構很清晰Pywin :是python windows 下的模塊,攝像頭控制(opencv),常用于外掛
發表于 12-03 07:36
如何用Python制作一個自動發送程序
怎么辦呢?是時候讓Python登場了! Python登場 這次我們來做一個自動發送微信的程序,在深夜十二點的時候給女朋友發去消息,也算是盡了一
使用Arduino和Python Tkinter進行RGB Led控制
電子發燒友網站提供《使用Arduino和Python Tkinter進行RGB Led控制.zip》資料免費下載
發表于 11-30 12:00
?0次下載
如何把Python腳本集成到GUI工具包-Tkinter
Tkinter(即 tk interface,簡稱“Tk”)本質上是對 Tcl/Tk 軟件包的 Python 接口封裝,它是 Python 官方推薦的 GUI 工具包,屬于 Python
Python寫機器人上位機
Python寫GUI的插件比較多,常用的有Tkinter、pyqt5,本將使用pyqt5寫機器人的上位機。Tkinter 是 Python的標準 GUI 庫,是
發表于 05-09 11:10
?0次下載
python如何打開gui界面
在Python中打開GUI界面,可以使用多種庫或框架,如Tkinter、PyQt、wxPython等。下面將詳細介紹如何使用Tkinter創建一個
評論