如何通过 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 修复未正确显示的按钮