基于python實(shí)現(xiàn)開箱即用的桌面時鐘
其實(shí)之前的文章我也有相關(guān)的內(nèi)容:
那這次又來了,豈不是重復(fù)的造輪子?事實(shí)并不是這樣的。這次在之前的基礎(chǔ)上實(shí)現(xiàn)的功能有:
- 桌面時鐘可以時鐘保持在所有窗口的最上邊,且窗體的透明度為0.8
- 沒有了關(guān)閉的功能,關(guān)閉需要在時鐘上按任意鍵
- 支持跟隨鼠標(biāo)移動
- 支持二進(jìn)制文件直接運(yùn)行
以上就是shigen基于以前的代碼再次做的優(yōu)化。那就直接上代碼吧:
# -*- encoding: utf-8 -*-
__date__ = '2023/12/04 13:00:32'
?
import tkinter as tk
import time
?
class ClockWindow(tk.Tk):
def __init__(self):
super().__init__()
self.overrideredirect(1) # 去除窗口邊框
self.wm_attributes("-alpha", 0.8) # 設(shè)置透明度
self.wm_attributes("-topmost", True) # 始終處于頂層
?
self.title('個性化時鐘')
self.geometry('300x100')
self.configure(bg='black')
?
self.time_label = tk.Label(self, text='', font=('Arial', 50), fg='white', bg='black')
self.time_label.pack(expand=True)
?
self.update_time()
self.bind("<ButtonPress-1>", self.StartMove) #監(jiān)聽左鍵按下操作響應(yīng)函數(shù)
self.bind("<ButtonRelease-1>", self.StopMove) #監(jiān)聽左鍵松開操作響應(yīng)函數(shù)
self.bind("<B1-Motion>", self.OnMotion) #監(jiān)聽鼠標(biāo)移動操作響應(yīng)函數(shù)
self.bind("<Any-KeyPress>", self.myquit) #關(guān)閉
?
def update_time(self):
current_time = time.strftime('%H:%M:%S')
self.time_label.config(text=current_time)
self.time_label.after(1000, self.update_time)
def StartMove(self,event):
global x, y
x = event.x
y = event.y
def StopMove(self,event):
global x, y
x = None
y = None
def OnMotion(self,event):
global x, y
deltax = event.x - x
deltay = event.y - y
self.geometry("+%s+%s" % (self.winfo_x() + deltax, self.winfo_y() + deltay))
self.update()
# print(event.x,event.y,self.winfo_x(),self.winfo_y(),self.winfo_width(),self.winfo_height())
def myquit(self, *args):
self.destroy()
?
?
if __name__ == "__main__":
app = ClockWindow()
app.mainloop()我們一改之前的運(yùn)行方式:
python xxx.py
這次我們引入了一個神器:pyinstaller,我們需要先安裝一下它:
pip install pyinstaller

對于它的特性,官方的解釋是這樣的:
pyinstaller 能夠在 Windows、Linux、Mac 等操作系統(tǒng)下將 Python 源文件打包,通過對源文件打包, Python 程序可以在沒有安裝 Python 的環(huán)境中運(yùn)行,也可以作為一個獨(dú)立文件方便傳遞和管理。
安裝完畢之后,執(zhí)行一下命令即可實(shí)現(xiàn)程序的打包:
pyinstaller -F xxx.py

最后,在文件的目錄下會多了一個dist文件夾:

現(xiàn)在的運(yùn)行方式就是直接去控制臺:

其實(shí)還是有一點(diǎn)不方便,我直接雙擊還不能打開。但是還是有進(jìn)步的,擺脫了對于python環(huán)境和各種依賴包的依賴,直接在終端打開,接近開箱即用了。更好的方式還在研究中,歡迎伙伴們的分享和交流。
到此這篇關(guān)于基于python實(shí)現(xiàn)開箱即用的桌面時鐘的文章就介紹到這了,更多相關(guān)python時鐘內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python Flask 請求數(shù)據(jù)獲取響應(yīng)詳解
這篇文章主要介紹了Python Flask請求數(shù)據(jù)獲取響應(yīng)的實(shí)現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-10-10
python實(shí)現(xiàn)跨年煙花動態(tài)效果
這篇文章主要介紹了python實(shí)現(xiàn)跨年煙花的動態(tài)效果,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-01-01
詳解pytest實(shí)現(xiàn)mark標(biāo)記功能詳細(xì)介紹
這篇文章主要介紹了詳解pytest實(shí)現(xiàn)mark標(biāo)記功能詳細(xì)介紹,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Python處理列表套字典結(jié)構(gòu)JSON數(shù)據(jù)的三種方式對比
這篇文章主要為大家詳細(xì)介紹了Python處理JSON文件中列表套字典結(jié)構(gòu)的三種優(yōu)化方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2026-02-02
Python的Flask框架中實(shí)現(xiàn)分頁功能的教程
這篇文章主要介紹了Python的Flask框架中實(shí)現(xiàn)分頁功能的教程,文中的示例基于一個博客來實(shí)現(xiàn),需要的朋友可以參考下2015-04-04
Python操作系統(tǒng)的6個自動化腳本小結(jié)
在Python中,實(shí)現(xiàn)操作系統(tǒng)自動化的腳本可以涵蓋從文件操作、系統(tǒng)監(jiān)控到網(wǎng)絡(luò)任務(wù)等多種功能,下面我將詳細(xì)介紹六個不同類別的Python自動化腳本示例,這些示例將幫助你理解如何用Python來自動化日常操作系統(tǒng)任務(wù),需要的朋友可以參考下2024-10-10
Python數(shù)據(jù)分析之?Pandas?Dataframe修改和刪除及查詢操作
這篇文章主要介紹了Python數(shù)據(jù)分析之?Pandas?Dataframe修改和刪除及查詢操作的相關(guān)資料,具有一定的參考價值,需要的小伙伴可以參考一下2022-05-05

