簡體   English   中英

在PyQt中使用Windows 7任務欄功能

[英]Using Windows 7 taskbar features in PyQt

我正在尋找有關將一些新的Windows 7任務欄功能集成到我的PyQt應用程序中的信息。

具體來說,如果已經存在使用新進度指示器( 參見此處 )和快速鏈接(www.petri.co.il/wp-content/uploads/new_win7_taskbar_features_8.gif)的可能性。

如果有人可以提供一些鏈接或只是“尚未實現”,我將非常感激。

非常感謝。

正如誇克所說,功能不在Qt 4.5中,但你可以直接從Qt調用windows API。 雖然它有點工作。

  1. 新的任務欄API通過COM公開,因此您無法使用ctypes.windll。 您需要創建一個.tlb文件來訪問這些函數。 從此論壇帖子或從Windows SDK獲取ITaskbarList的接口定義。 將其保存到名為TaskbarLib.idl的文件中。

  2. 創建.tlb文件。 您可能需要Windows SDK,或從其他地方獲取IDL編譯器。

     midl TaskbarLib.idl /tlb TaskbarLib.tlb 
  3. 加載.tlb(你需要Win32 Extensions for Python, http//python.net/crew/skippy/win32/Downloads.html ):

     import comtypes.client as cc cc.GetModule("TaskbarLib.tlb") 
  4. 創建TaskbarList對象。 設置進度條的功能在ITaskbarList3界面中:

     import comtypes.gen.TaskbarLib as tbl taskbar = cc.CreateObject( "{56FDF344-FD6D-11d0-958A-006097C9A090}", interface=tbl.ITaskbarList3) 
  5. 現在您可以調用API函數:

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

這是一個完整的示例腳本 資料來源: 1 2

有一個Qt附加組件實現了所有Windows 7任務欄擴展。 它被稱為Q7Goodies 它帶有PyQt綁定,因此這可能是利用PyQt中Windows 7功能的最簡單方法。

沒有在Qt 4.5中實現,但是在Qt 4.6的工作中它出現了。 在Qt 4.6正式發布之前,PyQt不會包裝4.6,但您可以使用4.6快照或簽出Qt存儲庫 ,看看C ++版本是否支持您想要的功能。 如果確實如此,那么PyQt 4.6也會支持它。

補充: 4.6功能列表沒有顯示明確的Windows 7支持,但這並不意味着它沒有你想要的,因為,至少如果我理解正確,它可能會將該功能折疊到現有小部件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM