当前位置: 首页 > 面试题库 >

在PyQt中使用Windows 7任务栏功能

郎和志
2023-03-14
问题内容

我正在寻找有关将某些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(您需要Python的Win32扩展,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



 类似资料:
  • 问题内容: 首先,我是一位经验丰富的C程序员,但是刚接触python。我想使用pyqt在python中创建一个简单的应用程序。让我们想象一下这个应用程序,就像它在运行时一样简单,它必须在系统托盘中放置一个图标,并且在菜单中提供了退出该应用程序的选项。 这段代码有效,它显示了菜单(为了简化起见,我没有连接退出动作,依此类推) 但这不是: 我可能想念一些东西。没有错误,但是在第二种情况下,当我单击鼠标

  • 问题内容: 我想让我的程序显示在任务栏中,但仍然没有传统的Windows寄宿生。我该怎么办?我知道 self.overrideredirect(1) ,但是这从任务栏中删除了我的程序。 这适用于Windows 7。 问题答案: 我没有断言这是“正确”的方法,但是请看这是否对您有用:

  • 问题内容: 我正在制作音乐播放器GUI,但无法使其显示在任务栏或Alt- Tab中。我已将overrideredirect()设置为true以删除边框和标题。我也做到了,这样当用户执行“鼠标单击并拖动”操作时,窗口就会移动。这是代码: 有什么办法可以使其至少出现在Alt-Tab中? 问题答案: 经过一些研究,我发现有一种方法可以执行此操作,但是它涉及使用ctypes,并且是Windows的唯一解决

  • Electron有API来配置Windows任务栏中的应用程序图标。 支持的有 创建一个 弹出列表, 自定义缩略图和工具栏, 图标叠加, 和所谓的 "闪烁框" 效果, 而且 Electron 还使用应用程序的 dock 图标来实现跨平台功能 比如 最近文档 和 应用进程. Windows Taskbar Electron has APIs to configure the app's icon i

  • 问题内容: 我正在使用以下代码在任务栏上显示JDialog,并且在JDK 1.6中可以正常工作。 但是当我使用方法设置模态类型时,它不起作用 这两个代码之间有什么区别?有什么方法可以解决此问题吗? 问题答案: 问题是某些所有者的构造方法会创建一个伪框架所有者(如果所有者是出于历史原因)。但是 必须没有 所有者像顶级窗口一样可见。即 将工作。

  • 问题内容: 如何使用JavaScript在任务栏中使用户的浏览器闪烁/闪烁/突出显示?例如,如果我每10秒发出一次AJAX请求,以查看用户在服务器上是否有任何新消息,我希望用户立即知道它,即使他当时正在使用其他应用程序。 编辑:这些用户确实希望在收到新消息时分心。 问题答案: 这不会使任务栏按钮以改变颜色的方式闪烁,但是标题将一直闪烁,直到他们移动鼠标为止。这应该可以跨平台使用,即使他们只是在其他