廢話少說,直接上代碼:
import tkinter as tk, time
bg = '#%02x%02x%02x' % (55,64,79)
dictWeekdays = {'0':'星期日','1':'星期一','2':'星期二','3':'星期三','4':'星期四','5':'星期五','6':'星期六'}
root = tk.Tk()
root.geometry("86x40+2474+1400")
root["background"] = bg
root.overrideredirect(True)
label = tk.Label(root, bg = bg, fg = 'white')
label.pack()
def on_update():
root.wm_attributes('-topmost',True)
localtime = time.localtime(time.time())
w = dictWeekdays[time.strftime("%w", localtime)]
m = time.strftime("%H:%M ", localtime)
date = time.strftime("\n%Y-%m-%d", localtime)
label['text'] = m + w + date
root.after(20000, on_update)
on_update()
root.mainloop()
效果:

效果.jpg
說明:
- 我的顯示器分辨率是2560x1440,所以將窗口位置設(shè)置為2474x1400,隱藏窗口標題欄,設(shè)置窗口和文字的背景顏色為系統(tǒng)任務(wù)欄的背景色,這樣正好能覆蓋Win10默認的系統(tǒng)時間顯示位置;
- 每隔20秒自動更新一次時間;
- 每次更新時,都將窗口重新置頂。因為當使用快捷鍵Win+D顯示桌面時,所有程序的窗口都會被最小化,該tk窗口也會被隱藏,所以自動將窗口重新置頂顯示;
- 每次客戶詢盤幾天能發(fā)貨時,都要手動查看一下今天是星期幾!因為國際快遞周末發(fā)不出的!以后寶寶再也不用煩躁的點來點去啦。。。
然后再稍微改進一下:
import tkinter as tk, datetime
bg = '#%02x%02x%02x' % (55,64,79)
dictWeekdays = {'0':'星期日','1':'星期一','2':'星期二','3':'星期三','4':'星期四','5':'星期五','6':'星期六'}
dictHoursOffset = {
'澳大利亞': 3,
'日本': 1, # 比北京快1小時
'中東': -4,
'俄羅斯': -4,
'南非': -6,
'歐洲': -7,
'英國': -8,
'美國': -12,
}
class WinMain():
def __init__(self):
self.winPop = None
self.root = tk.Tk()
self.root.geometry("86x40+2474+1400")
self.root["background"] = bg
self.root.overrideredirect(True)
self.label = tk.Label(self.root, bg = bg, fg = 'white')
self.label.pack()
self.label.bind("<Button-1>", self.onBtnClick1)
self.on_update()
self.root.mainloop()
def update_winpop(self):
if self.winPop is not None:
self.winPop.close()
self.winPop = None
else:
self.winPop = WinPop(self.root)
def onBtnClick1(self, event):
self.update_winpop()
def on_update(self):
self.root.wm_attributes('-topmost',True)
now = datetime.datetime.now()
w = dictWeekdays[now.strftime("%w")]
m = now.strftime("%H:%M ")
date = now.strftime("\n%Y-%m-%d")
self.label['text'] = m + w + date
self.root.after(3000, self.on_update)
class WinPop():
def __init__(self, winRoot):
self.win = tk.Toplevel(winRoot, bg = bg)
self.win.geometry("86x600+2474+800")
self.win.overrideredirect(True)
self.lf = tk.Label(self.win, text='', bg = bg, fg = 'white', font=("微軟雅黑", 12))
self.update()
self.lf.pack()
def close(self):
self.win.destroy()
def update(self):
now = datetime.datetime.now()
s = '\n'
for k,v in dictHoursOffset.items():
newtime = now + datetime.timedelta(hours = v)
m = newtime.strftime("%H:%M ")
s += (k + '\n' + m + '\n\n')
self.lf['text'] = s
class App():
def __init__(self):
self.win_main = WinMain()
if __name__ == "__main__":
app = App()
說明:
- 面向?qū)ο螅?/li>
- 增加世界時間顯示功能;
-
鼠標點擊一次Label,就顯示時間時間,再點擊,取消時間時間顯示。
效果.jpg
