跳转到主要内容

PyQt & PySide应用程序的交互式Python外壳插件

项目描述

Python Qt应用程序的控制台插件

Adeqt允许您在PyQt或PySide应用程序中使用Python外壳。您可以用此进行简单的调试或作为“高级用户”功能。

如何使用

安装adeqt包:pip install adeqt

如果您不想添加任何依赖项,可以将adeqt.py复制到您自己的项目中。您可能还想更改导入,以便直接使用您选择的Python Qt包(它通常使用QtPy兼容层)。

连接菜单项或键盘快捷键以打开Adeqt窗口,如下所示

from PyQt5.QtCore import Qt
from PyQt5.QtGui import QKeySequence
from PyQt5.QtWidgets import QAction, QMainWindow, QShortcut


class MainWindow(QMainWindow):

    def __init__(self, parent=None):
        super().__init__(parent)

        # ... Other application setup ...

        # Menu entry
        adeqt_action = QAction("Python console", self)
        adeqt_action.triggered.connect(self.show_adeqt)
        some_menu.addAction(adeqt_action)

        # Keyboard shortcut (here F12)
        adeqt_shortcut = QShortcut(QKeySequence(Qt.Key_F12), self)
        adeqt_shortcut.activated.connect(self.show_adeqt)

    adeqt_window = None

    def show_adeqt(self):
        # Change to 'from .adeqt ...' if you copy adeqt into your application
        from adeqt import AdeqtWindow
        if self.adeqt_window is None:
            self.adeqt_window = AdeqtWindow({'window': self}, parent=self)
        self.adeqt_window.show()

传递给AdeqtWindow的字典定义了将在控制台中可用的变量。这通常至少包含主窗口/应用程序对象,以及您想要方便访问的其他对象。

当使用控制台窗口时

  • Ctrl-Enter执行现有代码
  • Tab显示可用的补全
  • Ctrl-W关闭控制台窗口

设计 & 局限性

  • Adeqt故意保持简单,提供基本的控制台体验。它的目的是易于复制到您的项目中,并按需修改。

  • 无法防止恶意用户做任何事情。运行Python应用程序的用户基本上可以做任何事情,但Adeqt使其变得非常容易。如果您需要限制用户可以做什么,请考虑在其他层面上考虑安全性。

  • 用户代码在主线程中运行。这使得调用Qt方法变得容易,但如果您从控制台运行缓慢的操作,GUI将锁定直到它完成。

替代方案

Jupyter Qt控制台可以被嵌入到应用程序中。这是一个功能更强大的控制台 - 具有丰富的输出、语法高亮、更好的自动补全等。但它旨在在单独的“内核”进程中运行代码。在控制台('inprocess')的同一进程中运行代码是可能的,但支持不佳。它还需要相当多的依赖项。

调试器可以在执行过程中暂停您的代码,并提供一个运行命令和探索堆栈的位置。一些现代调试器还可以“附加”到由调试器启动的进程。一个好的调试器比Adeqt更强大,但这种力量也使其更难以使用。

项目详细信息


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

adeqt-0.2.tar.gz (7.5 kB 查看散列)

上传时间

构建分布

adeqt-0.2-py2.py3-none-any.whl (7.5 kB 查看散列)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面