0

ツールバーとともにpyqt5ウィンドウにmatplotlib図を埋め込みました。これは私のコードです:

from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
from PyQt5 import QtWidgets


class PlotWindow(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super(PlotWindow, self).__init__(parent=parent)

        self.figure = Figure(tight_layout=True)
        self.canvas = FigureCanvas(self.figure)
        self.setCentralWidget(self.canvas)

        self.toolbar = NavigationToolbar(self.canvas, self)
        self.addToolBar(self.toolbar)


if __name__ == '__main__':
    import sys

    app = QtWidgets.QApplication(sys.argv)

    mw = PlotWindow()
    ax = mw.figure.add_subplot()
    mw.show()

    exit(app.exec_())

そして、これは次のようになります。

ここに画像の説明を入力

ツールバーを下にドラッグして、そこにドッキングできます。

ここに画像の説明を入力

しかし、横(左または右)にドッキングすることはできません。

これは、他の標準的な pyqt5 ツールバーで実行できることですが、なぜ matplotlib ツールバーでは機能しないのですか? どうすればそれを機能させることができますか?

この行を変更することで、コードで実行できます。

# self.addToolBar(self.toolbar)
self.addToolBar(QtCore.Qt.LeftToolBarArea, self.toolbar)

結果は次のとおりです。

ここに画像の説明を入力

これは私が求めているものですが、ツールバーを左側からドッキング解除すると、再びそこにドッキングできなくなり、上部と下部にのみドッキングできます。

4

1 に答える 1