如何通过Python/PyQt创建Windows 7跳转列表?

3 投票
3 回答
987 浏览
提问于 2025-04-15 16:34

我有一个用PyQt做的项目,想试试Windows 7的新功能——跳转列表。经过一番搜索,我没有找到任何人用Python创建跳转列表的具体例子。

这里有没有人找到简单的方法来实现这个功能?马克·哈蒙德的pywin32模块有没有合适的封装可以用?

谢谢!

3 个回答

0

哈哈,经过12年我终于来回答这个问题了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_())

你可以在这里查看一些示例。想了解更多信息,可以查看官方文档

0

有一个Qt的插件,可以实现所有Windows 7任务栏的扩展功能。这个插件叫做 Q7Goodies。虽然它是一个C++的库,但我建议你可以联系一下作者,看看他们是否也提供了PyQt的接口。

1

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

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

撰写回答