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://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()