如何使 matplotlib 工具欄能夠停靠在 pyqt5 窗口的側面?

文森特

我在 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)

結果是:

在此處輸入圖片說明

這就是我所追求的,但是如果我從左側取消停靠工具欄,我將無法再將其停靠在那裡,只能將其停靠在頂部和底部。

埃利亞內斯克

matplotlib 提供的 QToolBar 配置為只允許拖動頂部和源代碼中看到的信息

self.setAllowedAreas(QtCore.Qt.ToolBarArea(
    _to_int(_enum("QtCore.Qt.ToolBarArea").TopToolBarArea) |
    _to_int(_enum("QtCore.Qt.ToolBarArea").BottomToolBarArea)))

解決方案是建立所有區域:

self.toolbar.setAllowedAreas(QtCore.Qt.ToolBarArea.AllToolBarAreas)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用qtDesigner将子窗口停靠在pyqt5的MDI区域中

matplotlib + PyQt5:如何传递参数?

Matplotlib导航工具栏嵌入pyqt5窗口-重置原始视图崩溃

如何使用python运行matplotlib和PyQt5 Video

如何在 matplotlib 和 pyqt5 中使用 BytesIO?

如何嵌入matplotlib plot PyQt5 QGroupBox

Matplotlib 2.1.0导航工具栏中的“主页”按钮嵌入pyqt5窗口中,无法再正常使用

如何在VS Code版本1.29.1中将终端窗口停靠在右侧?

当电子应用程序停靠在屏幕右侧时,如何向左调整窗口大小?

PyQt5:如何通过QPushButton重新停靠浮动QDockWidget?

如何调整在PyQt5窗口内QWebEnginePage?

如何在 PyQt5 中居中窗口标题?

PyQt5 如何暫時隱藏主窗口?

如何在python中使用pyqt5将QSlider添加到主窗口的工具栏

嵌入在PyQt5窗口中的matplotlib图形的x轴像素大小

如何在Pyqt5环境中用Pickle保存Matplotlib图形?

您如何使用“PyQt5”后端使来自“matplotlib”的控制台消息静音?

如何在PyQt5应用程序中从Matplotlib NavigationToolbar更改默认文件名?

如何在PyQt5中使Matplotlib图交互式

如何在 python qt Designer 或 pyqt5 中添加 matplotlib 3d pyplot

pyqt5应用程序中的matplotlib工具栏

使用工具栏更新pyqt5 gui中的嵌入式matplotlib图

在 PyQt5 中嵌入 Matplotlib:工具栏不起作用

PyQt5弹出窗口

PyQT5 空白窗口

Matplotlib和PyQt5绘图图

嵌入在Pyqt5中的Matplotlib NavigationToolbar

在 PyQt5 中嵌入 Matplotlib 图形

如何安装PyQt5