PyQt界面:左右界面由于控件太多不协调

在编写软件时遇到左右两个子界面的问题,左侧为菜单,右侧显示内容。当右侧内容过多时挤压左侧空间。为保持协调,尝试了两种方法:一是扩大整个界面宽度,二是固定右侧界面宽度,让其内容自适应。第二种方法实现了右侧控件自适应且不影响左侧布局的效果。
摘要由CSDN通过智能技术生成

问题:

在编写软件时,有左右两个子界面,都设置为网格布局;左界面是菜单,右界面是每个菜单对应的内容。当右界面的空间太多时,导致左界面的空间缩小,不协调。

正常显示应如下

 如下图:右边的一行控件太多,导致子界面左边界面宽度变窄,影响整体协调性。

 解决办法:

方法1

为了不让左边变窄,与其他子界面相协调,调整了一下整个界面的大小,使得左边的菜单在每个子界面显示时都不变,显示如下,效果就是整个变宽了。

    # 初始化界面
    def init_ui(self):
        #self.setFixedSize(960, 700)
        # 将整个界面的宽度设大
        self.setFixedSize(1160, 700)
        self.main_widget = QtWidgets.QWidget()  # 创建窗口主部件
        self.main_layout = QtWidgets.QGridLayout()  # 创建主部件的网格布局
        self.main_widget.setLayout(self.main_layout)  # 设置窗口主部件布局为网格布局

 显然这种效果不满意

方法2

固定右侧的界面大小,使得左侧在任何情况下都不动,右侧控件根据大小进行设定。

其实就加了设定宽度的代码

self.right_widget.setFixedWidth(750)
   def class_calculation_resistance(self):
        if self.right_widget:
            self.main_layout.removeWidget(self.right_widget)  # 移除已有右侧组件
        self.setWindowTitle('系统')
        self.right_widget = QtWidgets.QWidget()  # 创建右侧部件
        self.right_widget.setObjectName('right_widget')
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")

        self.right_layout = self.verticalLayout
        self.right_widget.setLayout(self.right_layout)  # 设置右侧部件布局为网格
        self.main_layout.addWidget(self.right_widget, 0, 2, 12, 10)  #占8行9列 12 10

        self.right_widget.setFixedWidth(750)
        print(self.right_widget.size())

效果可以

 右侧控件自己自适应改变,但不影响整体效果。

一起学习一起成长

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一枚努力的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值