繁体   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