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

Qt Designer布局需求:固定宽度左侧面板+可缩放右侧Matplotlib绘图

Qt Designer 固定左侧面板宽度+右侧Matplotlib绘图自适应布局方案

一、Qt Designer 可视化布局设置

  • 给主窗口添加QHBoxLayout作为顶层布局(右键主窗口 -> 布局 -> 水平布局)。
  • 拖入两个QWidget:一个作为左侧固定面板容器,另一个作为右侧绘图容器,都放到顶层水平布局里。
  • 选中左侧QWidget,在右侧属性面板设置minimumWidth和maximumWidth为同一数值(比如200),强制固定宽度;同时把它的拉伸因子设为0(选中布局里的左侧控件,右键 -> 布局 -> 设置拉伸因子 -> 0)。
  • 给左侧QWidget内部添加QVBoxLayout,然后把行编辑器、按钮等控件放入这个垂直布局,内部控件正常排列即可,无需单独设置尺寸。
  • 选中右侧QWidget,把它的拉伸因子设为1,这样主窗口调整尺寸时,所有额外空间都会分配给右侧区域。

二、Matplotlib 画布代码适配

  • 在Qt Designer里给右侧QWidget添加QVBoxLayout,命名为plot_layout(方便代码调用)。
  • 代码中创建FigureCanvasQTAgg实例后,添加到右侧布局,并设置画布的尺寸策略为自适应:
from matplotlib.backends.backend_qtagg import FigureCanvasQTAgg
from matplotlib.figure import Figure
from PyQt5.QtWidgets import QSizePolicy

# 创建Matplotlib画布
fig = Figure()
self.canvas = FigureCanvasQTAgg(fig)
# 设置画布自适应容器
self.canvas.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
# 添加到右侧布局
self.plot_layout.addWidget(self.canvas)

关键注意事项

  • 不要给左侧面板的内部布局设置拉伸因子,避免覆盖外层的固定宽度设置。
  • 如果用QGroupBox作为左侧容器,同样可以通过设置minimumWidth和maximumWidth来固定宽度,效果一致。
  • 确保主窗口没有其他多余的顶层布局,否则会导致布局逻辑冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 00:42:08