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

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

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

谢谢!

【问题讨论】:

    标签: python windows windows-7 pyqt jump-list


    【解决方案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

        【讨论】:

          猜你喜欢
          • 2011-04-19
          • 2023-04-06
          • 1970-01-01
          • 1970-01-01
          • 2020-03-12
          • 1970-01-01
          • 2010-11-27
          • 1970-01-01
          • 2010-12-26
          相关资源
          最近更新 更多