我在 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)
结果是:
这就是我所追求的,但是如果我从左侧取消停靠工具栏,我就不能再将它停靠在那里,只能停靠在顶部和底部。