3

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

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

谢谢!

4

3 回答 3

1

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

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

于 2009-12-01T21:21:26.583 回答
0

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

于 2010-05-13T14:25:52.390 回答
0

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

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_())

您可以在此处查看一些示例。更多信息可以查看官方文档

于 2021-12-08T14:38:20.200 回答