用于 Qt 4、Python 3 的 matplotlib 小部件

发布于 2024-12-26 14:31:18 字数 774 浏览 0 评论 0原文

我正在使用 PyQt4 和 matplotlib 在 Python 3 中编写 GUI 应用程序。用户必须选择某些字段名称,然后程序将从数据库中读取相应的值,对其进行处理并绘制带有一些统计数据的图。用户可以更改字段名称或统计表示的某些选项并(自动)重新绘制绘图。

我在本章中找到了一些 Qt 小部件: 面向 Python 开发人员的 Matplotlib,在 Qt 4 中嵌入 Matplotlib。但这里还有一些示例小部件: mpl 小部件

我对 Qt 设计没有太多经验,想知道这两者之间有什么区别?到目前为止,我已经尝试了第一个,它允许我在 Qt GUI 中显示 matplotlib 图(直方图),但我无法测试所有功能,例如在更改任何参数后更新图,因为它尚未实现。

欢迎任何建议、好的参考或可用的小部件。

I'm writing a GUI application in Python 3 using PyQt4 and matplotlib. User would have to select certain field names, then programm would read corresponding values from the database, process them and draw a plot with some statistics out of it. User could change then field names or certain options for statistics representation and (automatically) redraw the plot.

I found some Qt widget in this chapter: Matplotlib for Python Developers, Embedding Matplotlib in Qt 4. But there also some example widget here: mpl widget.

I don't have much experience with Qt design and wonder what might be the difference btw those two? So far I've tried the first one and it allows me to display a matplotlib plot (histogram) within Qt GUI, but I can't test all the features, like updating the plot after changing any parameters, because it is not implemented yet.

Any advice, good reference or available widgets are welcome.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

聆听风音 2025-01-02 14:31:18

mpl 小部件的优点是您可以在 QtDesigner 中设计界面时看到它,并且会自动为您设置一些东西。如果您查看代码,您会发现它也是基于您提供的“嵌入”示例。另一方面,您始终可以在界面中使用占位符 qwidget (或其他)来将绘图小部件放入其中,然后您不必将 mpl_widget 文件作为依赖项携带。

最简单的解决方案可能是使用 matplotlib 的 pylab 接口,它将生成独立于主应用程序的图形窗口。在尝试绘制任何内容之前,您需要确保交互模式已打开,并且后端设置为 qt4。数字易于管理(例如 plt.close('all') )。

The advantage of the mpl widget is that you can see it while designing your interface in QtDesigner, and some things set up automatically for you. If you look at the code, you'll see it's also based on the "embedding" example you give. On the other hand, you can always have a placeholder qwidget (or whatever) in the interface to put your plot widget into, and then you don't have to carry the mpl_widget file around as a dependency.

The even simplest solution might be to use matplotlib's pylab interface, which will produce figure windows independent from your main application. You need to ensure that interactive mode is on, and the backend is set to qt4 before attempting to plot anything. Figures are easy to manage (e.g., plt.close('all') ).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文