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

PyQt6首列固定宽度、表格随窗口拉伸布局问题求助

PyQt6多标签窗口布局问题解决

问题根源

你当前的布局问题主要出在这几点:

  • 多余的stacklayout被加入主布局但未实际使用,挤占了布局空间
  • 没有给左列筛选控件设置固定宽度约束,反而在表格后添加addStretch(1),导致表格被挤压固定,无法随窗口扩展
  • 左列grid_layout里的setColumnStretch(3,1)完全无效,因为布局中根本没有第3列

解决思路与修改方案

核心逻辑是:给左列设置固定宽度约束,让表格占据窗口剩余全部空间,并配置表格自身的自适应属性。以下是修改后的完整代码及关键说明:

import sys
from PyQt6 import QtWidgets
from PyQt6.QtCore import Qt


class MainWindow(QtWidgets.QMainWindow):

    def __init__(self):
        super().__init__()
        self.setWindowTitle("My App")

        self.tabs = QtWidgets.QTabWidget()
        self.tabs.setTabPosition(QtWidgets.QTabWidget.TabPosition.North)
        self.tabs.setMovable(False)

        # Tab 1
        self.tab_1 = QtWidgets.QWidget()
        self.tabs.addTab(self.tab_1, "tab_1")
        self.tab_1_func()

        self.setCentralWidget(self.tabs)

    def tab_1_func(self):
        """ Overview """
        # 左列筛选控件布局
        grid_layout = QtWidgets.QGridLayout()
        # 主布局:水平分布左列和表格
        page_layout = QtWidgets.QHBoxLayout(self.tab_1)

        # 移除无用的stacklayout,避免干扰布局
        # self.tab_1.stacklayout = QtWidgets.QStackedLayout()
        # page_layout.addLayout(self.tab_1.stacklayout)

        #
        # Left Column - Buttons, filters etc
        #
        widget_box = QtWidgets.QComboBox()
        widget_box.addItems(['Country', 'Capital', 'Street'])
        grid_layout.addWidget(widget_box, 0, 0)

        widget_filter = QtWidgets.QLineEdit()
        widget_filter.setPlaceholderText("Enter your text")
        grid_layout.addWidget(widget_filter, 0, 1)

        # 将左列布局包裹到独立widget中,设置固定宽度
        left_widget = QtWidgets.QWidget()
        left_widget.setLayout(grid_layout)
        left_widget.setFixedWidth(300)  # 固定左列宽度,可按需调整
        left_widget.setContentsMargins(0,0,20,0)  # 右间距,和表格区分开

        #
        # 表格部分
        #
        data = [
            ('France', 'Paris', 'Rue de X'),
            ('United Kingdom', 'London', 'Road X'),
相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 21:20:54