如何通过Python/PyQt创建Windows 7跳转列表?
我有一个用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也不支持这个版本。