You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让PyQt5窗口中嵌入的matplotlib工具栏支持左右侧边停靠

问题原因

核心原因是Matplotlib的NavigationToolbar2QT类在初始化时,默认仅设置了顶部、底部两个允许停靠的区域,因此即使你手动指定初始停靠在左侧,工具栏被拖出后也无法再次停靠到左右侧边区域。

解决步骤
  1. 补充导入QtCore模块
    你的原代码未导入QtCore,需先修改导入语句:
from PyQt5 import QtCore, QtWidgets
  1. 调整工具栏允许停靠的区域
    在初始化工具栏的代码后,新增一行设置允许停靠到所有区域即可:
self.toolbar = NavigationToolbar(self.canvas, self)
# 新增:允许工具栏停靠在顶部、底部、左侧、右侧所有区域
self.toolbar.setAllowedAreas(QtCore.Qt.AllToolBarAreas)
# 保留你的初始左侧停靠设置
self.addToolBar(QtCore.Qt.LeftToolBarArea, self.toolbar)

如果不需要开放所有停靠区域,可自行组合参数,比如仅开放上下+左侧停靠:

self.toolbar.setAllowedAreas(
    QtCore.Qt.TopToolBarArea 
    | QtCore.Qt.BottomToolBarArea 
    | QtCore.Qt.LeftToolBarArea
)

修改后即可正常将工具栏拖放到左右侧边区域停靠。

内容的提问来源于stack exchange,提问作者user9413641

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:24:04