我正在使用PyQt4和matplotlib在Python 3中编写GUI应用程序。用户必须选择某些字段名称,然后程序将从数据库中读取相应的值,处理它们并绘制带有一些统计数据的图表。用户可以更改字段名称或某些统计表示选项,并(自动)重绘图表。
我在本章中找到了一些Qt小部件:Matplotlib for Python Developers, Embedding Matplotlib in Qt 4。但是这里还有一些示例小部件:mpl widget。
我对Qt设计没有太多经验,并想知道这两者有什么区别?到目前为止,我已经尝试了第一个,它允许我在Qt GUI中显示matplotlib图(直方图),但我无法测试所有功能,比如在更改任何参数后更新图,因为它尚未实现。
欢迎任何建议,良好的参考或可用的小部件。
mpl小部件的优点是您可以在QtDesigner中设计界面时看到它,并为您自动设置一些内容。如果您查看代码,您会看到它也基于您提供的“嵌入”示例。另一方面,您可以在界面中始终使用占位符qwidget(或其他)来放置绘图窗口小部件,然后您不必将mpl_widget文件作为依赖项携带。
最简单的解决方案可能是使用matplotlib的pylab接口,它将生成独立于主应用程序的图形窗口。您需要确保启用交互模式,并在尝试绘制任何内容之前将后端设置为qt4。数字易于管理(例如,plt.close('all'))。