pycharm创建桌面时间控件小程序

文章目录

主要是为了走一遍python创建exe的流程。

步骤

1、新建一个项目,名称为:desktop_widget
2、创建一个python文件,名称为:desktop_widget.py,内容如下:

py 复制代码
import tkinter as tk
from datetime import datetime


class DesktopWidget:
    def __init__(self):
        self.root = tk.Tk()

        # --- 核心设置:让窗口像桌面图标/挂件 ---
        self.root.title("桌面小工具")
        self.root.geometry("200x60+100+100")  # 宽x高+离左距离+离上距离

        # 去除标题栏和边框 (关键步骤)
        self.root.overrideredirect(True)

        # 设置窗口透明度 (0.0 - 1.0),0.9 表示轻微透明,更有质感
        self.root.attributes("-alpha", 0.9)

        # 【重要】让窗口置顶,但不在任务栏显示 (Windows 特定)
        # 如果需要穿透点击(鼠标点不到它),需额外设置,这里先保持可交互
        self.root.attributes("-topmost", True)

        # 设置背景色和透明色 (实现不规则形状或透明背景的关键)
        bg_color = "#2b2b2b"  # 深灰色背景
        text_color = "#ffffff"
        self.root.configure(bg=bg_color)

        # --- 内容区域 ---
        self.label_time = tk.Label(
            self.root,
            text="",
            font=("Arial", 16, "bold"),
            bg=bg_color,
            fg=text_color,
            cursor="hand2"  # 鼠标放上去变成手型
        )
        self.label_time.pack(expand=True, fill="both")

        # 绑定鼠标事件以实现拖拽
        self.label_time.bind("<ButtonPress-1>", self.start_move)
        self.label_time.bind("<B1-Motion>", self.on_move)

        # 双击关闭
        self.label_time.bind("<Double-Button-1>", lambda e: self.root.destroy())

        # 启动更新循环
        self.update_time()

        # 启动主循环
        self.root.mainloop()

    def start_move(self, event):
        """记录鼠标按下时的位置"""
        self.x = event.x
        self.y = event.y

    def on_move(self, event):
        """计算移动距离并移动窗口"""
        deltax = event.x - self.x
        deltay = event.y - self.y
        x = self.root.winfo_x() + deltax
        y = self.root.winfo_y() + deltay
        self.root.geometry(f"+{x}+{y}")

    def update_time(self):
        """每秒更新时间"""
        now = datetime.now().strftime("%H:%M:%S")
        date = datetime.now().strftime("%m-%d")
        self.label_time.config(text=f"{date}\n{now}")
        # 1000毫秒后再次调用自己
        self.root.after(1000, self.update_time)


if __name__ == "__main__":
    try:
        app = DesktopWidget()
    except KeyboardInterrupt:
        pass

3、安装依赖,命令为:

bash 复制代码
pip install pyinstaller

4、准备图标

阿里巴巴矢量图标库下载一个图片,在通过在线工具转为icon格式,命令为my_icon.ico,并放到项目里。
5、执行安装命令

bash 复制代码
pyinstaller --onefile --windowed --icon=my_icon.ico desktop_widget.py

这样dist文件夹下会生成ext文件,进入到该目录,发送到桌面快捷方式,点击该快捷方式,桌面出现时间控件。

相关推荐
Wpa.wk2 小时前
IDE中配置Git常见操作
ide·经验分享·git·测试工具
宁夏雨科网2 小时前
SaaS系统搭建宠物用品小程序可行吗
小程序·商城小程序·微信商城·制作小程序·宠物用品小程序·宠物用品商城
CHU72903512 小时前
直播逛购新体验——直播商城APP前端功能详解
前端·小程序
zhangfeng113316 小时前
2026年国际国外top10 top20流行的ai ide,
ide·人工智能
CDialog17 小时前
vscode编译ci1303sdk的源代码
ide·vscode·编辑器
云起SAAS17 小时前
设备质保保修维修保质包换期查询H5抖音快手微信小程序看广告流量主开源
微信小程序·小程序
xiaoshiquan120618 小时前
Android Studio里,SDK Manager显示不全问题
android·ide·android studio
1-1=020 小时前
Visual Studio Code 简介
ide·vscode·编辑器
在屏幕前出油21 小时前
02. FastAPI——路由
服务器·前端·后端·python·pycharm·fastapi