用Python瞬間擼一個小程序,解決Win10時間欄不能顯示星期幾的問題

廢話少說,直接上代碼:

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

說明:

  1. 我的顯示器分辨率是2560x1440,所以將窗口位置設(shè)置為2474x1400,隱藏窗口標題欄,設(shè)置窗口和文字的背景顏色為系統(tǒng)任務(wù)欄的背景色,這樣正好能覆蓋Win10默認的系統(tǒng)時間顯示位置;
  2. 每隔20秒自動更新一次時間;
  3. 每次更新時,都將窗口重新置頂。因為當使用快捷鍵Win+D顯示桌面時,所有程序的窗口都會被最小化,該tk窗口也會被隱藏,所以自動將窗口重新置頂顯示;
  4. 每次客戶詢盤幾天能發(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()

說明:

  1. 面向?qū)ο螅?/li>
  2. 增加世界時間顯示功能;
  3. 鼠標點擊一次Label,就顯示時間時間,再點擊,取消時間時間顯示。


    效果.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容