Skip to main content

Welcome to pywin10

简介

pywin10基于pywin32,封装了菜单,通知功能.可以搭配tkinter,方便使用.

安装

pip install pywin10

效果

预览图

预览图

预览图

开始

import threading
import tkinter
import win32gui
from pywin10 import TaskBarIcon


class MainWindow:
    def __init__(self):
        self.root = tkinter.Tk()

        # 开启常驻后台线程
        backend_thread = threading.Thread(target=self.backend)
        backend_thread.setDaemon(True)
        backend_thread.start()

        # 设置当点击窗体时弹出通知
        self.root.bind('<ButtonPress-1>', self._on_tap)
        # 自定义关闭按钮
        self.root.protocol("WM_DELETE_WINDOW", self._close)

        self.root.mainloop()

    def _on_tap(self, event):
        self.t.ShowToast()

    def _close(self):
        self.t.ShowToast(title="最小化", msg="窗口已经最小化到图标")
        self.root.withdraw()

    def _show(self):
        self.root.deiconify()

    def ding(self, *args):
        print("ding 接收参数:", args)

    def _left_click(self, *args):
        print("_left_click 接收参数:", args)

    def exit(self):
        # 退出 TaskBarIcon
        win32gui.DestroyWindow(self.t.hwnd)
        # 退出 Tkinter
        self.root.destroy()

    def backend(self):
        # TaskBarIcon 里面的参数全部都不是必须的,即便self.t = TaskBarIcon(),你一样可以发送通知等.
        self.t = TaskBarIcon(
            left_click=(self._left_click, (1, 2)),  # 左键单击回调函数,可以不设置(如果想要传参,这样写(func,(arg1,arg2)))
            double_click=self._show,  # 左键双击回调函数,可以不设置(如果不想传参,直接写函数名称)
            icon="python.ico",  # 设置图标,可以不设置
            hover_text="TaskBarIcon",  # 设置悬浮在小图标显示的文字,可以不设置
            menu_options=[  # 可以不设置
                ['退出', "退出.ico", self.exit, 1],  # 菜单项格式:["菜单项名称","菜单项图标路径或None",回调函数或者子菜单列表,id数字(随便写不要重复即可)]
                ["分隔符", None, None, 111],
                ['顶一顶', "ding.ico", (self.ding, (1, 2, 3)), 44],
                ['日历', "日历.ico", None, 3],
                ['主页', "主页.ico", self._show, 2],
                ["分隔符", None, None, 7],
                ["更多选项", "编辑.ico", [
                    ['使用说明', "等待文件.ico", None, 25],
                    ["分隔符", None, None, 17],
                    ['hello', "github.ico", None, 16],
                    ['hello2', "github.ico", None, 1116],
                ], 4],
            ],
            menu_style="iconic",  # 设置右键菜单的模式,可以不设置:normal(不展示图标),iconic(展示图标)
            icon_x_pad=12,  # 设置图标左边距
        )
        # 注意这是死循环,类似与tkinter中的mainloop,
        # 因为都是死循环,所以与mainloop会冲突,放到线程里面执行.
        win32gui.PumpMessages()


if __name__ == '__main__':
    MainWindow()

Metadata

Release files for pywin10 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pywin10 0.0.3
File Size Uploaded
pywin10-0.0.3.tar.gz 9.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pywin10 0.0.3
File Interpreter ABI Platform
pywin10-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 18.8 kB

Release files / pywin10-0.0.3.tar.gz

Download URL pywin10-0.0.3.tar.gz
Size 9.3 kB
Tags Source
SHA-256 checksum
How to use checksums
118f6997b0735aca9e18cd47981b766d8e0e6c96c45200eb790fac3c0a6355e5
BLAKE2b-256 checksum
How to use checksums
320c319376058f2ea5d4b15fc1c2fc5711cf62d1db7f8f189ea30449f46b6321
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.7

Release files / pywin10-0.0.3-py3-none-any.whl

Download URL pywin10-0.0.3-py3-none-any.whl
Size 9.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c092d15ac85b583f291f4afa56e24681274223e060a900951b4fcad9daa8bad9
BLAKE2b-256 checksum
How to use checksums
9cf05a76d1f99ba3cb056b6f8bf013238d0f6b4a4f99054afd7227d9848bcaa7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.7

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page