この章に従って、matplotlib Figure を QTdesigner で生成された GUI に埋め込みました。これまでのところ動作していますが、プロットを操作して保存するには、GUI 内にツールバーを埋め込む必要もあります。サンプル コードを変更してツールバーを追加するにはどうすればよいですか? 私は多くの情報源をグーグルで検索しましたが、それらはすべて、本に記載されている例では機能しない独自のカスタム コードを持っています。
カスタム ウィジェット クラスを変更する必要があると思います。ウィジェット クラスのコードは次のとおりです。
元のコード (本から):
from PyQt4 import QtGui
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
class MplCanvas(FigureCanvas):
def __init__(self):
self.fig = Figure()
self.ax = self.fig.add_subplot(111)
FigureCanvas.__init__(self, self.fig)
FigureCanvas.setSizePolicy(self,
QtGui.QSizePolicy.Expanding,
QtGui.QSizePolicy.Expanding)
FigureCanvas.updateGeometry(self)
class MplWidget(QtGui.QWidget):
def __init__(self, parent = None):
QtGui.QWidget.__init__(self, parent)
self.canvas = MplCanvas()
self.vbl = QtGui.QVBoxLayout()
self.vbl.addWidget(self.canvas)
self.setLayout(self.vbl)
私の質問は、ツールバーがキャンバスと共に表示されるようにコードを追加するにはどうすればよいですか?
次を使用してAPIをインポートする必要があることはわかっています。
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
それを入れるために、新しいクラスやカスタム ウィジェットを作成する必要がありますか?