Matplotlib:使用 IPython 和 Designer 的 Qt

日期2011-11-12(最后修改),2006-01-22(创建)

embedding_in_qt.py 中提供了将 Matplotlib 嵌入 Qt 应用程序的示例代码。本食谱扩展了该基本公式,以与其他强大工具集成。特别是,我们将 Trolltech(Qt 的创建者)创建的 GUI 创建工具的使用与通过 IPython 与正在运行的 Qt 应用程序进行交互的能力结合在一起。

Alex Fedosov 发布了一个使用 Designer 的基本教程(以及相关的系统要求)。请在继续之前查看它。

但是,出于我们的目的,我们将在 Designer 中创建一个更简单的设计。

打开 Designer,创建一个新的“主窗口”。

当向导出现时,删除它建议生成的所有菜单和工具栏。

现在,将自定义小部件添加到您的项目中,方法是:

将此新小部件命名为,并将大小设置为 400, 300。

它现在应该出现在你的工具箱中。点击它,然后点击已创建的表单。如果你知道这些操作,还可以对表单执行“垂直布局(Ctrl+L)”和“调整大小(Ctrl+J)”操作(不选择小部件)。此时,你的工作区可能看起来像这样

现在我们需要添加“导入”设置,如 这里 所述

当然,你还需要包含的文件:mplwidget.py.

在 Designer 中执行所有这些操作的结果是一个 .ui 文件。因此,保存我们一直在处理的表单,并将其命名为“mplwidget_tutorial.ui”。

可能导致问题的一件事是,Designer 会自动递增赋予小部件实例的名称(Form1、Form2、matplotlibWidget1、matplotlibWidget2 等),因此如果这些名称与我使用的名称不匹配,你可能需要对你的过程进行一些逻辑调整。

现在,我们使用工具 pyuic(包含在 PyQt 中)将此 .ui 文件转换为 Python 类。这可以通过以下方式轻松实现

在 [ ]
pyuic mplwidget_tutorial.ui > mplwidget_tutorial.py

查看 mplwidget_tutorial.py 的内容,并将其与 我得到的 内容进行比较。你也可以查看我的 mplwidget_tutorial.ui

现在,最好将调用写到它自己的 main_mpl_tutorial.py 文件中,这个文件非常短: )#

在 [ ]
from mplwidget_tutorial import *

f = Form1()
f.show()

然后,我们想要启动 ipython 并实例化窗口。为了成功完成这项工作,你需要一些包(每个包都有最低版本要求),例如 python2.3-ipython、python2.3-qt3 等等。不过,最重要的一个包是 ipython >= 0.6.13(我认为)。从该版本开始,有一个超级棒的功能,它添加了一个调用开关 {{{-qthread}}},它在单独的线程中启动一个 QApplication,这样 ipython 提示符仍然可以与它交互。

因此,如果上面的命令对你无效,请检查版本。它也可能根据你的配置被调用为“python2.3-ipython”。

好了,现在是最酷的部分:交互。

而且,很容易回到 Designer,添加一个按钮,重新运行 pyuic,你就可以得到另一个版本。

章节作者: AndrewStraw, KristjanOnu

附件