如何通过 python/pyqt 创建 Windows 7 跳转列表?

Posted

技术标签:

【中文标题】如何通过 python/pyqt 创建 Windows 7 跳转列表?【英文标题】:how to create windows 7 jump lists via python/pyqt? 【发布时间】:2010-12-22 04:25:36 【问题描述】:

我有一个 pyqt 项目,我有兴趣使用它来玩转新的 Windows 7 跳转列表功能。经过一堆搜索,我没有找到任何人通过 python 创建跳转列表的具体示例。

这里有没有人找到一个简单的方法来解决这个问题? mark hammond 的 pywin32 模块有合适的包装器吗?

谢谢!

【问题讨论】:

【参考方案1】:

我不认为Qt支持跳转列表,你可以找到更多信息here

Qt 4.6 增加了对 Windows 7 的支持,它于今天发布,但我认为他们没有添加此特定功能,我认为 PyQt 不支持此版本。

【讨论】:

【参考方案2】:

有一个实现所有 Windows 7 任务栏扩展的 Qt 插件。它被称为Q7Goodies。虽然它是一个 C++ 库,但我建议联系作者,也许他们也提供了 PyQt 绑定。​​

【讨论】:

【参考方案3】:

嗯,12 年后我会回答这个 XD。 Qt 5.2 中引入了一个名为“QtWinExtras/Windows Extras”的附加组件。正如docs所解释的:

Qt Windows Extras 提供了类和函数,使您能够使用各种 Windows 特定函数。例如,您可以将 Qt 对象转换为 Windows 对象句柄并操作 DWM 玻璃框架。

此外,您还可以使用 Windows 7 引入的功能,例如 Aero Peek、跳转列表、任务栏按钮上的进度指示器或缩略图工具栏。

您可以查看以下代码作为示例:

import sys

from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel
from PyQt5.QtWinExtras import QWinJumpList, QWinJumpListItem


class Form(QMainWindow):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        self.resize(350, 150)
        self.setWindowTitle("Windows Jump Lists")
        label = QLabel("Right click the taskbar button")
        label.resize(label.sizeHint())
        label.setAlignment(Qt.AlignCenter)
        self.setCentralWidget(label)
        jump_list = QWinJumpList()
        tasks = jump_list.tasks()
        taskmgr = QWinJumpListItem(QWinJumpListItem.Link)
        taskmgr.setTitle("Open Task Manager")
        taskmgr.setFilePath("C:\\Windows\\system32\\taskmgr.exe")
        tasks.addItem(taskmgr)
        tasks.setVisible(True)  # Necessary
        self.show()


app = QApplication(sys.argv)
form = Form()
sys.exit(app.exec_())

您可以查看一些示例here。 更多信息可以查看official documentation

【讨论】:

以上是关于如何通过 python/pyqt 创建 Windows 7 跳转列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何在从串口python pyqt接收的textbrowser pyqt5上附加串行数据[重复]

如何编写 Dockerfile 来运行 Python3 + PyQt5

如何使用 Python、PyQt5 和 Pyinstaller 修复未正确显示的按钮

使用 python 3.7 PyQt5 和 cx_Freeze 创建可执行文件,但 DLL 无法加载

如何在python pyqt5中从主窗口管理第二个窗口

Python PyQt5如何更改最小化图标