在PyQ中使用windows7任务栏功能

2024-05-15 21:28:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一些新的Windows7任务栏功能集成到我的PyQt应用程序的信息。在

特别是如果已经存在使用新进度指示器(see here)和快速链接的可能性(www.petri.co.il/wp-content/uploads/new_win7_taskbar_features_8.gif). 在

如果有人能提供一些链接或只是一个“尚未实现”,我将非常感激。在

非常感谢。在


Tags: 功能信息应用程序here链接www可能性il
3条回答

有一个Qt加载项实现了所有windows7任务栏扩展。它被称为Q7Goodies。它带有PyQt绑定,因此这可能是利用PyQt中windows7特性的最简单方法。在

正如quark所说,Qt4.5中没有这个功能,但是您可以直接从Qt调用WindowsAPI。不过这有点麻烦。在

  1. 新的任务栏API是通过COM公开的,因此您不能使用ctypes.windll. 您需要创建一个.tlb文件来访问函数。从this forum post或从windows SDK获取ITaskbarList的接口定义。将其保存到一个名为。TaskbarLib.idl任务库.

  2. 创建.tlb文件。您可能需要WindowsSDK,或者从其他地方获得IDL编译器。在

    midl TaskbarLib.idl /tlb TaskbarLib.tlb
    
  3. 加载.tlb(您需要Python的Win32扩展名,http://python.net/crew/skippy/win32/Downloads.html):

    import comtypes.client as cc
    cc.GetModule("TaskbarLib.tlb")
    
  4. 创建TaskbarList对象。进度条的设置功能在界面ITaskbarList3中:

    ^{3美元
  5. 现在可以调用API函数:

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

这是一个complete example script。 资料来源: 12

qt4.5中没有实现,但出现了in the works for Qt 4.6。PyQT不会在QT 4.6正式发布之前打包4.6,但您可以使用4.6 snapshots或签出Qt repository,看看C++版本是否支持您想要的特性。如果是这样,那么pyqt4.6也将支持它。在

补充道:list of 4.6 features没有明确的Windows7支持,但这并不意味着它就没有你想要的,因为,至少如果我理解正确的话,他们很可能会将该功能折叠到现有的小部件中。在

相关问题 更多 >