README.md

    tkinter研究

    我将在此写入一些关于tkinter扩展功能的研究成果,其中研究最多的是Windows平台下的


    关于如何实现任务栏进度(Windows)

    研究参考

    https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-itaskbarlist3

    https://stackoverflow.com/questions/17607415/python-tkinter-windows-7-taskbar-progress

    https://pypi.org/project/PyTaskbarProgress/

    PyTaskbar是一个调用Shell进行开发的功能库,可以控制窗口的进度条

    使用方法

    安装所需库

    pip install PyTaskbarProgress

    示例

    from PyTaskbar import Progress
    from tkinter import ttk, Tk
    from ctypes import windll
    
    
    Root = Tk()
    Progress = Progress(Root.winfo_id())  # 需填入窗口的窗柄
    Progress.init()  # 必须要初始化
    Progress.setProgress(50)  # 注意,这里值只能是0~100之间的数
    
    Normal = ttk.Button(Root, text="正常", command=lambda: Progress.setState("normal"))
    Normal.grid(column=0, row=0)
    
    Warning = ttk.Button(Root, text="警告", command=lambda: Progress.setState("warning"))
    Warning.grid(column=1, row=0)
    
    Error = ttk.Button(Root, text="错误", command=lambda: Progress.setState("error"))
    Error.grid(column=0, row=1)
    
    Loading = ttk.Button(Root, text="加载", command=lambda: Progress.setState("loading"))
    Loading.grid(column=1, row=1)
    
    Done = ttk.Button(Root, text="完成", command=lambda: Progress.setState("done"))
    Done.grid(column=0, row=2)
    
    Root.mainloop()

    关于如何实现系统托盘(Windows)

    研究参考

    https://stackoverflow.com/questions/62372144/how-to-add-system-tray-to-my-tkinter-application-and-avoid-using-lots-of-pywin32/62373030#62373030

    https://sourceforge.net/projects/tktable/files/winico/

    https://fossil.mpcjanssen.nl/winico/dir?ci=tip

    https://wiki.tcl-lang.org/page/winico

    https://pypi.org/project/tkwinico/

    Winico是一个用tcl实现的扩展库,可以用于创建系统托盘图标。我已经绑定好了Winico库了,并分发在PyPi上面

    使用方法

    安装所需库

    64位版本

    pip install tkwinico==1.2.71

    32位版本

    pip install tkwinico==1.2.6

    示例

    from tkwinico import *
    import tkinter as tk
    
    
    Window = tk.Tk()
    
    
    def CallBack(Message, X, Y):  # 时间处理
        if Message == WM_RBUTTONDOWN:
            Menu = tk.Menu(tearoff=False)
            Menu.add_command(label="Quit", command=Window.quit)  # 创建菜单选项
            Menu.tk_popup(X, Y)  # 显示菜单
    
    
    taskbar(ADD, load(APPLICATION), (Window.register(CallBack), MESSAGE, X, Y))
    
    Window.mainloop()

    额外说明

    在库里面你可以找到一个html文件,这个就是这个库的使用介绍,可以照着这个文档进行使用。

    关于如何启用Windows11的云母材质

    研究参考

    https://pythonawesome.com/win32mica-a-simple-module-to-add-the-mica-effect-on-legacy-python-windows/

    https://github.com/martinet101/win32mica

    https://blog.csdn.net/bangbang_BON/article/details/126531053?spm=1001.2014.3001.5502

    win32mica是一个使用ctypes进行调用win32进行实现启用云母材质的功能库。

    使用方法

    安装所需库

    pip install win32mica

    示例

    from tkinter import Tk
    from win32mica import ApplyMica, MICAMODE
    from ctypes import windll
    
    
    Root = Tk()
    Root.title("Mica")
    Root.configure(background="#000000")
    Root.update()
    ApplyMica(windll.user32.GetParent(Root.winfo_id()), ColorMode=MICAMODE.DARK)
    Root.mainloop()
    from tkinter import Tk
    from win32mica import ApplyMica, MICAMODE
    from ctypes import windll
    
    
    Root = Tk()
    Root.title("Mica")
    Root.configure(background="#ffffff")
    Root.update()
    ApplyMica(windll.user32.GetParent(Root.winfo_id()), ColorMode=MICAMODE.LIGHT)
    Root.mainloop()

    项目简介

    我将在此写入一些关于tkinter扩展功能的研究成果,其中研究最多的是Windows平台下面的

    发行版本

    当前项目没有发行版本

    贡献者 1

    XiangQinxi @bangbang_BON

    开发语言