2009-11-15 14 views
12

Szukam informacji na temat integracji niektórych nowych funkcji paska zadań systemu Windows 7 z aplikacjami PyQt.Korzystanie z funkcji paska zadań systemu Windows 7 w PyQt

W szczególności, jeśli istnieje już możliwość korzystania z nowego wskaźnika postępu (see here) i szybkich linków (www.petri.co.il/wp-content/uploads/new_win7_taskbar_features_8.gif).

Jeśli ktoś mógłby podać kilka linków lub po prostu "jeszcze nie zaimplementowany", byłbym bardzo wdzięczny.

Wielkie dzięki.

Odpowiedz

23

Jak powiedział Quark, funkcjonalność nie jest w Qt 4.5, ale można wywołać API Windows bezpośrednio z Qt. To jednak trochę pracy.

  1. Nowy interfejs API paska zadań jest udostępniany przez COM, więc nie można użyć ctypes.windll. Aby uzyskać dostęp do funkcji, musisz utworzyć plik .tlb. Uzyskaj definicję interfejsu dla ITaskbarList z this forum post lub z zestawu SDK systemu Windows. Zapisz go w pliku o nazwie np. TaskbarLib.idl.

  2. Utwórz plik .tlb. Prawdopodobnie będziesz potrzebował pakietu Windows SDK lub uzyskasz kompilator IDL z innego miejsca.

    midl TaskbarLib.idl /tlb TaskbarLib.tlb 
    
  3. Załaduj .tlb (trzeba Rozszerzenia Win32 dla Pythona, http://python.net/crew/skippy/win32/Downloads.html):

    import comtypes.client as cc 
    cc.GetModule("TaskbarLib.tlb") 
    
  4. Tworzenie obiektu TaskbarList. Funkcja ustawiania paska postępu jest w ITaskbarList3 interfejsu:

    import comtypes.gen.TaskbarLib as tbl 
    taskbar = cc.CreateObject(
        "{56FDF344-FD6D-11d0-958A-006097C9A090}", 
        interface=tbl.ITaskbarList3) 
    
  5. Teraz można wywoływać funkcje API:

    taskbar.HrInit() 
    taskbar.SetProgressValue(self.winId(),40,100) 
    

Oto complete example script. Źródła: 1 2

3

Nie zaimplementowano w Qt 4.5, ale pojawi się in the works for Qt 4.6. PyQt nie będzie zawijany w wersji 4.6, dopóki nie zostanie oficjalnie wydany 4.6 4.6, ale możesz grać z 4.6 snapshot s lub sprawdzić Qt repository i sprawdzić, czy wersja C++ obsługuje żądane funkcje. Jeśli tak, to PyQt 4.6 również to będzie obsługiwał.

Dodano: Dodano: Nie pokazuje wyraźnej obsługi Windows 7, ale to nie znaczy, że nie będzie mieć tego, czego potrzebujesz, ponieważ, przynajmniej jeśli dobrze zrozumiem, prawdopodobnie zrzuci tę funkcję do istniejący widżet.

5

Jest Qt dodatek, który realizuje wszystkie rozszerzenia Windows 7 na pasku zadań. Nazywa się Q7Goodies. Pochodzi z powiązaniami PyQt, więc jest to prawdopodobnie najłatwiejszy sposób na skorzystanie z funkcji Windows 7 w PyQt.

Powiązane problemy