在 PyQt4 中向 MPL 图添加工具栏

Posted

技术标签:

【中文标题】在 PyQt4 中向 MPL 图添加工具栏【英文标题】:Adding a toolbar to a MPL figure in PyQt4 【发布时间】:2012-04-26 22:04:35 【问题描述】:

我有一个非常简单的 pyqt4 应用程序,它嵌入了一个 MatPlotLib 图。我通过 MatplotlibWidget 嵌入 matplotlib 图,并通过 QtDesigner 和 pyuic4 创建了界面。

我想为用户提供对toolbar for interactive navigation 的访问权限。但是,尽管他们在 GTK 上有很好的例子,但我似乎无法让它为 pyQt 工作。它提到了示例,但example for QT4 provided 不包括工具栏。

感谢您对此提供的任何帮助。


This question 类似,但不能完全满足我的需求,我无法适应它。

【问题讨论】:

【参考方案1】:

QtDesigner中没有工具栏小部件,但是可以通过代码添加工具栏:

这里是例子,plot_layout是QtDesigner设计的QVBoxLayoutplot_canvasMatplotlibWidget小部件。

import numpy as np
from PyQt4.QtCore import Qt
from PyQt4.QtGui import *
from matplotlib.backends.backend_qt4 import NavigationToolbar2QT as NavigationToolbar
from plot_dialog2 import Ui_Form

class PlotDialog(QWidget, Ui_Form):
    def __init__(self):
        QWidget.__init__(self)
        self.setupUi(self)
        self.navi_toolbar = NavigationToolbar(self.plot_canvas, self)
        self.plot_layout.addWidget(self.navi_toolbar)

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    dialog = PlotDialog()
    dialog.show()
    sys.exit(app.exec_())

【讨论】:

以上是关于在 PyQt4 中向 MPL 图添加工具栏的主要内容,如果未能解决你的问题,请参考以下文章

在 Bootstrap 3 中向工具提示添加换行符

在 gtkmm 中向树视图中的行添加工具提示

pyqt4在线程中向主线程中的插槽发出信号

编写自定义指令以在 AngularJS (TypeScript) 中向 ng-options 添加工具提示

ASP.Net Ajax:如何从其DLL中向asp.net 2.0工具箱添加自定义控件

PyQt4工具栏