文章目录
-
- 步骤
主要是为了走一遍python创建exe的流程。
步骤
1、新建一个项目,名称为:desktop_widget
2、创建一个python文件,名称为:desktop_widget.py,内容如下:
1import tkinter as tk 2from datetime import datetime 3 4 5class DesktopWidget: 6 def __init__(self): 7 self.root = tk.Tk() 8 9 # --- 核心设置:让窗口像桌面图标/挂件 --- 10 self.root.title("桌面小工具") 11 self.root.geometry("200x60+100+100") # 宽x高+离左距离+离上距离 12 13 # 去除标题栏和边框 (关键步骤) 14 self.root.overrideredirect(True) 15 16 # 设置窗口透明度 (0.0 - 1.0),0.9 表示轻微透明,更有质感 17 self.root.attributes("-alpha", 0.9) 18 19 # 【重要】让窗口置顶,但不在任务栏显示 (Windows 特定) 20 # 如果需要穿透点击(鼠标点不到它),需额外设置,这里先保持可交互 21 self.root.attributes("-topmost", True) 22 23 # 设置背景色和透明色 (实现不规则形状或透明背景的关键) 24 bg_color = "#2b2b2b" # 深灰色背景 25 text_color = "#ffffff" 26 self.root.configure(bg=bg_color) 27 28 # --- 内容区域 --- 29 self.label_time = tk.Label( 30 self.root, 31 text="", 32 font=("Arial", 16, "bold"), 33 bg=bg_color, 34 fg=text_color, 35 cursor="hand2" # 鼠标放上去变成手型 36 ) 37 self.label_time.pack(expand=True, fill="both") 38 39 # 绑定鼠标事件以实现拖拽 40 self.label_time.bind("<ButtonPress-1>", self.start_move) 41 self.label_time.bind("<B1-Motion>", self.on_move) 42 43 # 双击关闭 44 self.label_time.bind("<Double-Button-1>", lambda e: self.root.destroy()) 45 46 # 启动更新循环 47 self.update_time() 48 49 # 启动主循环 50 self.root.mainloop() 51 52 def start_move(self, event): 53 """记录鼠标按下时的位置""" 54 self.x = event.x 55 self.y = event.y 56 57 def on_move(self, event): 58 """计算移动距离并移动窗口""" 59 deltax = event.x - self.x 60 deltay = event.y - self.y 61 x = self.root.winfo_x() + deltax 62 y = self.root.winfo_y() + deltay 63 self.root.geometry(f"+{x}+{y}") 64 65 def update_time(self): 66 """每秒更新时间""" 67 now = datetime.now().strftime("%H:%M:%S") 68 date = datetime.now().strftime("%m-%d") 69 self.label_time.config(text=f"{date}\n{now}") 70 # 1000毫秒后再次调用自己 71 self.root.after(1000, self.update_time) 72 73 74if __name__ == "__main__": 75 try: 76 app = DesktopWidget() 77 except KeyboardInterrupt: 78 pass 79
3、安装依赖,命令为:
1pip install pyinstaller 2
4、准备图标
阿里巴巴矢量图标库下载一个图片,在通过在线工具转为icon格式,命令为my_icon.ico,并放到项目里。
5、执行安装命令
1pyinstaller --onefile --windowed --icon=my_icon.ico desktop_widget.py 2
这样dist文件夹下会生成ext文件,进入到该目录,发送到桌面快捷方式,点击该快捷方式,桌面出现时间控件。
《pycharm创建桌面时间控件小程序》 是转载文章,点击查看原文。

