2013-07-12 1 views
0

작업 표시 줄 단추에 내 앱의 진행 상태를 표시하려고합니다. 나는 this answer을 참조로 사용했습니다.Python + Tkinter Windows 7 작업 표시 줄 진행

는 여기에 내가하는 일의 예 :

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

내가 틀렸다면 .pack 또는 .grid해야한다고 생각합니다.

+0

여기서 작업 표시 줄은 tkinter 위젯이 아닌 COM 개체입니다. 나는 창문 어디서든 그것을 놓기를 원하지 않는다. (그리고 나는 필요하다면 나는 그것을 할 수 없었다 - 그것은이 방법들을 가지고 있지 않다). – rocket

0

탭을 활성화해야합니다. taskbar.HrInit() 뒤에 taskbar.ActivateTab(root.winfo_id())을 추가하십시오. tkinter에서 int(root.wm_frame(), 16) 대신 root.winfo_id()을 사용하는 것이 더 좋습니다. 그렇지 않으면 tkinter 탭 근처에 진행 막대가있는 파이썬 탭이 나타납니다. 끝 부분에서 진행 막대를 제거하려면 taskbar.SetProgressState(HWND, TBPF_NOPROGRESS)을 호출해야합니다.

플래그를 정의해야합니다. 예 : TBPF_NOPROGRESS = 0. 더 많은 옵션을 보려면 Microsoft의 웹 페이지를 확인하십시오. https://msdn.microsoft.com/en-us/library/windows/desktop/dd391697%28v=vs.85%29.aspx

저는 이것이 오래된 질문이지만 누군가 유용 할 것입니다.