2

我想在任务栏按钮中显示我的应用程序的进度。我用这个答案作为参考。

这是我所做的一个例子:

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

但我看到任务栏按钮没有任何进展。我做错了什么?

4

2 回答 2

2

需要激活该选项卡。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

我知道这是一个老问题,但也许有人会发现它很有用。

于 2015-07-03T20:58:58.183 回答
-2

如果我是正确的,我认为您需要 .pack 或 .grid 它

于 2013-07-13T22:09:32.417 回答