使用MPL 1.2.1,可以通过figure.canvas.toolbar获得标准MPL图的导航工具栏的处理程序。我不确定以前的版本。
至少在QT后端,可以使用QT方法.addWidget()向导航工具栏添加任意小部件。我想其他后端也可以使用类似的方法,但我还没有测试过它们。
这里是一个工作示例(使用QT后端),它将QLineEdit()添加到导航工具栏以更改MPL图的标题(使用run -i ...从IPython(pylab)运行,然后启动test()):from PySide import QtGui, QtCore
def test():
plot([1,2,3], lw=2)
q = qt4_interface(gcf())
return q # WARNING: it's paramount to return the object otherwise, with
# no references, python deletes it and the GUI doesn't respond!
class qt4_interface:
def __init__(self,fig):
self.fig = fig
toolbar = fig.canvas.toolbar
self.line_edit = QtGui.QLineEdit()
toolbar.addWidget(self.line_edit)
self.line_edit.editingFinished.connect(self.do_something)
def do_something(self, *args):
self.fig.axes[0].set_title(self.line_edit.text())
self.fig.canvas.draw()
#f = open('l','a'); f.write('yes\n'); f.flush(); f.close()