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文件,进入到该目录,发送到桌面快捷方式,点击该快捷方式,桌面出现时间控件。

相关推荐
赵广陆12 小时前
RAG进阶
pycharm·langchain
show43314 小时前
2026小程序端视频转文字技术对比:识别引擎精度实测
小程序·音视频
sam-zy21 小时前
微信小程序+ESP8266+Arduino 开发智能插座,有本地OTA功能
微信小程序·小程序
沫璃染墨1 天前
《Qt从零入门系列(二):Qt开发环境搭建——从Qt Creator到SDK配置》
c++·ide·qt
A24207349301 天前
微信小程序开发:常用基础语法与指令详解
微信小程序·小程序·notepad++
xieliyu.1 天前
Java 文件IO :File 文件类、字节流、字符流讲解
java·ide·笔记·javaee
W_chuanqi1 天前
VSCode + Claude Code + DeepSeek:打造 AI 编程神器
ide·vscode·编辑器·ai编程
黄华SJ520it1 天前
青蓝送水类型社交裂变小程序系统技术拆解
小程序·系统开发
csdn_aspnet1 天前
在 Visual Studio Code 中安装使用 Github Copilot
ide·vscode·github·copilot
weikecms2 天前
星巴克API接口,星巴克点餐接口开发
大数据·小程序