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的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | cadfe02b31620fccd635695cbf79260875d1e6e0b79ad5434c6c36630618ec2f |
|
MD5 | db4146ca471ed930a9ba5a85fdc380ba |
|
BLAKE2b-256 | d787a924c7dda1c63e1418843c12825419dc7359a984ff2b4af462c4e9c8996a |
adeqt-0.2-py2.py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 99877f1e59df16fc77af10409c749447af04a464fad699258b900fab1913757c |
|
MD5 | 260726b420b82d3f150c3f246b7551cc |
|
BLAKE2b-256 | 05eeac91edd910b6963edf42535f6a601c61be90a71dc89e896c2ea8715e9e14 |