基于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 數(shù)據(jù)處理更容易的12個輔助函數(shù)總結(jié)
Python的產(chǎn)生似乎就是專門用來處理數(shù)據(jù)的,順理成章的成為大數(shù)據(jù)的主流語言,本文介紹十二個函數(shù)輔助你更容易更便捷的用Python進(jìn)行數(shù)據(jù)處理2021-11-11
Django商城項(xiàng)目注冊功能的實(shí)現(xiàn)
注冊功能是網(wǎng)頁項(xiàng)目必備的需求,本文提供了一個Django項(xiàng)目實(shí)現(xiàn)注冊功能的示例,有此需求的同學(xué)可以參考下2021-06-06
關(guān)于yolov5的一些簡單說明(txt文件、訓(xùn)練結(jié)果分析等)
使用YOLOV5訓(xùn)練數(shù)據(jù)之后我們需要一些評判標(biāo)準(zhǔn)來告訴我們所訓(xùn)練的效果究竟如何,下面這篇文章主要給大家介紹了關(guān)于yolov5的一些簡單說明,主要是txt文件、訓(xùn)練結(jié)果分析等的相關(guān)資料,需要的朋友可以參考下2022-06-06
Python調(diào)用OpenCV實(shí)現(xiàn)圖像平滑代碼實(shí)例
這篇文章主要介紹了Python調(diào)用OpenCV實(shí)現(xiàn)圖像平滑代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06
基于Python實(shí)現(xiàn)Excel轉(zhuǎn)Markdown表格
Markdown(也簡稱md)作為一種輕量級標(biāo)記語言,因其易寫易讀,效果美觀大方,不僅被眾多網(wǎng)站使用,也是程序員們做筆記、寫文檔的首選。本文將利用Python實(shí)現(xiàn)Excel轉(zhuǎn)Markdown表格,感興趣的可以了解一下2022-04-04
使用Python操作Excel中的各項(xiàng)頁面設(shè)置功能
在使用Excel進(jìn)行數(shù)據(jù)分析或報(bào)告制作時,頁面設(shè)置是確保最終輸出效果專業(yè)、美觀的關(guān)鍵步驟,合理的頁面設(shè)置不僅能夠優(yōu)化打印效果,還能提升數(shù)據(jù)的可讀性,本文將詳細(xì)介紹如何使用Python操作Excel中的各項(xiàng)頁面設(shè)置功能,需要的朋友可以參考下2024-08-08
Python內(nèi)置數(shù)據(jù)類型list各方法的性能測試過程解析
這篇文章主要介紹了Python內(nèi)置數(shù)據(jù)類型list各方法的性能測試過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-01-01

