ツールバーとともに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)
結果は次のとおりです。
これは私が求めているものですが、ツールバーを左側からドッキング解除すると、再びそこにドッキングできなくなり、上部と下部にのみドッキングできます。