我想在任务栏按钮中显示我的应用的进度。 我使用this answer作为参考。
以下是我所做的一个例子:
import tkinter
import comtypes.client as cc
cc.GetModule("TaskbarLib.tlb")
import comtypes.gen.TaskbarLib as tbl
taskbar = cc.CreateObject(
"{56FDF344-FD6D-11d0-958A-006097C9A090}",
interface=tbl.ITaskbarList3)
class gui(object):
def __init__(self, root):
self.root = root
if __name__ == "__main__":
root = tkinter.Tk()
app = gui(root)
taskbar.HrInit()
taskbar.SetProgressValue(root.winfo_id(),40,100)
root.mainloop()
但我发现任务栏按钮没有进展。我做错了什么?
答案 0 :(得分:1)
需要激活标签。在taskbar.ActivateTab(root.winfo_id())
之后添加taskbar.HrInit()
。
在tkinter中最好使用int(root.wm_frame(), 16)
代替root.winfo_id()
,因为否则tkinter选项卡旁边会显示带有进度条的python选项卡。
最后应调用taskbar.SetProgressState(HWND, TBPF_NOPROGRESS)
以删除进度条。
需要定义标志。例如。 TBPF_NOPROGRESS = 0
。
查看Microsoft的网页以获取更多选项:https://msdn.microsoft.com/en-us/library/windows/desktop/dd391697%28v=vs.85%29.aspx
我知道这是一个老问题,但也许有人会发现它很有用。
答案 1 :(得分:0)
如果我是对的,我认为你需要.pack或.grid它