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

2023-11-10

问题:

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

正常显示应如下

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

 解决办法:

方法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())

效果可以

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

一起学习一起成长

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PyQt界面:左右界面由于控件太多不协调 的相关文章

  • 使用 PyQT 逐帧加载 opencv 视频

    我正在尝试加载一个 mat 文件 具有被跟踪对象的位置坐标 并加载一个视频文件 为了加载视频文件 我使用 opencv 我制作了一个 GUI 来加载它们 一旦有人按下开始按钮 视频就会开始播放 暂停会停止播放 这是它的 GUI 这是我遇到的
  • 使用 py2exe 隐藏 Python GUI 应用程序的控制台窗口

    我有一个使用 Qt 实际上是 PyQt4 的 Python 程序 当我从 main py 启动它时 我会得到一个控制台窗口和 GUI 窗口 当然 在 Windows 上 然后我用 py2exe 编译我的程序并成功创建 main exe 但是
  • 为什么需要用 pyqtSlot 装饰连接的槽?

    我正在使用 pyqt5 并且使用类似于以下的代码连接了几种方法 self progress canceled connect self cancel 例如 其中self cancel is def cancel self self time
  • PyQt:如何正确显示图像?

    我想在 pyqt 中显示图像 所以我使用了标签和像素图选项 以及缩放内容 但图像扭曲了 我应该使用另一个小部件还是做其他事情 谢谢 这是代码 from PyQt4 import QtCore QtGui self label setPixm
  • 编辑表时关闭 PyQt 事件循环

    我正在使用 PyQt 开发 GUI GUI 有一个 qListWidget 一个 qTableWidget 和一个用 Mayavi 实现的绘图 该列表指的是绘制的形状 例如圆柱体和圆锥体 当在列表中选择形状时 我希望将形状的属性加载到表中
  • PyQt 与 PySide 比较 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我目前在 Linux 上的 Qt 重型 C Python 环境中开发了许多应用程序 并根据需要移植到 PC Mac 我使用嵌入 C 中的 Pyt
  • 使用QThread定期更新一个QTableWidget pyqt

    在我的应用程序中 我使用 API 调用获取记录 然后将数据动态添加到 QTableWidget 这是到目前为止我的代码片段 class TriageUI QtGui QMainWindow def init self QtGui QMain
  • 从线程接收数据后pyqt主窗口不断崩溃

    我有一个 QMainWindow 启动 QThread 并等待来自网络的数据 当收到任何数据时更新 UI 问题是 它有时会崩溃 有时不会 我所做的就是启动它并等待数据 这是线程类 class ListenerThread QtCore QT
  • 如何为列表中的每个元素创建一个按钮并将其放在滚动区域中?

    我有一个列表 每次用户打开文件时都会获取一个元素 我需要创建一个带有文件名 列表中的元素 的按钮 每次将该文件附加到列表中时 并将该按钮放入滚动区域 问题是我总是只有一个按钮 只是更改了名称 filenames def addfiles f
  • PyQt 自动调整 qlineedit 字符间距

    我有一个 qlineedit 用户在其中输入验证码 我希望能够每隔 5 个字符自动间隔这些数字 就像激活自动添加破折号的窗口时一样 例如 12345 67890 12345 67890 如果位数是固定的 最好的选择是使用setInputMa
  • PyQT4 signal.connect 是否使对象保持活动状态?

    如果我有一个信号并且向该信号注册了一个对象函数 这会使该对象保持活动状态并停止该对象的垃圾收集吗 E g class Signals signal Qt pyqtSignal def init self QObject init self
  • 使 QLabel 可点击

    我有一个充满 QPixmap 的 Qlabel 我想在单击该标签后启动一个进程 函数 我扩展了 QLabel 类 如下所示 from PyQt5 QtCore import from PyQt5 QtWidgets import from
  • 如何在辅助显示器上全屏显示图像?

    如何使用 PyQt5 PySide 或任何其他 Python 库在辅助 显示器上以全屏模式显示所需的图像 过去 我使用帧缓冲区图像查看器 Fbi https manpages ubuntu com manpages bionic man1
  • cx_freeze:QODBC 驱动程序未加载

    我的 python 应用程序如下所示 test py from PyQt4 import QtCore from PyQt4 import QtGui from PyQt4 import QtSql import sys import at
  • 如何将图标放置到 QLineEdit 上?

    stackoverflow com 网站的右上角有一个带有放大镜头的搜索字段和一个灰色的 搜索 关键字 我想知道是否有可能实现相同的外观QLineEdit 如果是这样那怎么办 QLineEdit lineEdit new QLineEdit
  • PyQt 和 unittest - 测试信号和槽

    我有一个 pyqt 应用程序 正在为其编写单元测试 它严重依赖信号和槽 为了正确测试它 我必须检查是否发送了正确的信号 做这个的最好方式是什么 我看到 Qt 库有一个 QSignalSpy 但我在 PyQt 中找不到任何对此的引用 我能想到
  • 更改QLineEdit的ClearButton图标

    我想在Windows 10 1909 64位 上的Python 3 8和PyQt5 5 15 0 上更改我的QLineEdit的ClearButton图标 稍后我想在Linux上运行代码 我尝试应用此处找到的代码 如何在 QLineEdit
  • 如何在PYQT中创建按钮点击

    我在 PyQT 中创建按钮单击时遇到了一些问题 当我创建如下按钮的点击时 这张图片无法保存 cv SetImageROI image pt1 0 pt1 1 pt2 0 pt1 0 int pt2 1 pt1 1 1 if self But
  • 替换主窗口中的 CentralWidget

    我对 PySide 有点陌生 我有一个主窗口对象 一次显示一个小部件 我一直在尝试更改中央小部件QMainWindow类 以便在按下按钮时替换窗口中可见的小部件 问题是按下的按钮是在 Widget 类中 而不是在主窗口类中 say clas
  • 对于 `mouseMoveEvent()` 来说鼠标移动太快

    以下是 Python 3 版本 UI XML 代码显示 4QProgessBar对于每个鼠标方向 标记为 X X Y Y 快速移动鼠标 以圆圈形式 将使 4QProgessBar上升到 99 然后是一些QProgessBar休息一下 直到鼠

随机推荐

  • 全面理解网络流中的最大流问题

    网络流 最大流问题 前序 在将网络里实现算法之前 我们得聊聊网络流究竟是个什么东西 毕竟只有知道它的样貌 才能继续看懂下面的定义 对吧 首先 网络流不仅仅指的是什么FF算法 dinic算法 算法只是用来解决问题的 稍后我们会更加能体会这一点
  • 移动构造-C++11

    移动构造 移动构造是C 11标准中提供的一种新的构造方法 在现实中有很多这样的例子 我们将钱从一个账号转移到另一个账号 将手机SIM卡转移到另一台手机 将文件从一个位置剪切到另一个位置 移动构造可以减少不必要的复制 带来性能上的提升 有些复
  • 查询每门课程成绩都大于80分学生的姓名

    转载的sql语句 1 查询每门课程成绩都大于80分学生的学号 数据库 表 student name score course A 85 语文 A 75 数学 A 82 英语 B 75 语文 B 89 数学 B 79 英语 天使美眉90 语文
  • Flutter报错之Waiting for another flutter command to release the startup lock解决方案

    问题引入 通过命令行执行 flutter devices 或其他flutter命令时 报错如下 Waiting for another flutter command to release the startup lock 解决方案 关闭A
  • 不用看网课就能学到python的文章(第一天)

    为什么要学python 在大数据时代 抖音快手火爆全球 作业帮小猿搜题的数据库 都离不开大数据 大数据的科学计算 最重要的语言就是python 网络爬虫 网络爬虫 搜狗百科 搜索引擎等等也主要是python 包括一些游戏图像等等都缺少不了p
  • Windows7在Eclipse中配置Python+OpenCV

    1 从http www oracle com technetwork java javase downloads jdk 7u2 download 1377129 html下载jdk 7u2 windows i586 exe 安装到D Pr
  • 简单介绍Roop(类似SimSwap)项目

    文章目录 一 关于Roop 二 安装Roop CPU 2 1 克隆仓库 2 2 设置python国内源 2 2 检查安装virtualenv 2 3 创建项虚拟环境 2 5 安装项目依赖 2 6 下载必要文件 三 运行Roop CPU 四
  • 论文解读《SOLO: Segmenting Objects by Locations》

    实例分割属于比较challenging的任务 他相当于是object detection和semantic segmentation的结合体 在SOLO出现之前 有两种常用的paradigm 1 top down 先进行目标检测 再对检测框
  • mysql中TINYINT的取值范围

    项目场景 最近在开发过程中 看见表设计中是thinyint字段 但对于它的范围产生了好奇 问题描述 当我们填写超过128数值的时候 该字段就会报以下错误 Cause com mysql jdbc MysqlDataTruncation Da
  • 62_Pandas有条件地提取 pandas.DataFrame 的行

    62 Pandas有条件地提取 pandas DataFrame 的行 使用query 方法根据pandas DataFrame的列值的条件提取行 它很方便 因为您可以使用比较运算符和字符串方法以及多个条件的组合来简洁地描述条件规范 目录
  • -bash: /etc/profile: line 11: syntax error near unexpected token `$'{\r''报错问题解决

    在Linux系统配置Java环境变量之后执行 source etc profile指令报 bash etc profile line 11 syntax error near unexpected token r 如下图 错误提示信息已经反
  • dlmalloc解析连载一

    dlmalloc是目前一个十分流行的内存分配器 其由Doug Lea 主页为 http gee cs oswego edu 从1987年开始编写 到目前为止 最新版本为2 8 3 可以从 ftp g oswego edu pub misc
  • 对计算机硬件维护的方法,计算机硬件维护方法

    计算机硬件维护方法 随着科技的不断发展 计算机应用率越来越高 在社会生活的各个领域均有广泛的应用 下面是小编分享的计算机硬件维护方法 一起来看一下吧 计算机常见的硬件故障主要包括内存条损坏 主板元器件损坏 硬盘损坏等 计算机硬件出现故障 一
  • 黑马程序员--分布式搜索ElasticSearch学习笔记

    写在最前 黑马视频地址 https www bilibili com video BV1LQ4y127n4 想获得最佳的阅读体验 请移步至我的个人博客 SpringCloud学习笔记 消息队列MQ学习笔记 Docker学习笔记 分布式搜索E
  • CENTOS环境Apache最新版本httpd-2.4.54编译安装

    一 下载 Apache至少需要apr apr util pcre组件的支持 cd usr local src wget http dlcdn apache org apr apr 1 7 0 tar gz wget http dlcdn a
  • 微信小程序心得体会

    1 微信小程序诞生的前景 1 受到手机内存的限制 用户无法下载诸多app 2 用户为了简洁性不愿意下载app 3 微信用户的日益增加 2 微信小程序的特点 微信小程序的理念是 触手可及 用完即走 是一种不需要下载安装即可使用的应用 一次开发
  • SpringBoot 项目健康检查与监控

    转载 https www cnblogs com javanoob p springboot healthcheck html 前言 You build it You run it 当我们编写的项目上线后 为了能第一时间知晓该项目是否出现问
  • 程序员必知的 七 种软件架构模式!

    一种模式就是特定上下文的问题的一种解决方案 然而 很多开发者至今还对各种软件架构模式之间的差别搞不清 甚至对其所知甚少 大体上 主要有下面这7种架构模式 分层架构 多层架构 管道 过滤器架构 客户端 服务器架构 模型 视图 控制器架构 事件
  • 背包算法(贪婪算法)

    一 问题描述 有n 个物品 它们有各自的重量和价值 现有给定容量的背包 如何让背包里装入的物品具有最大的价值总和 二 总体思路 根据动态规划解题步骤 问题抽象化 建立模型 寻找约束条件 判断是否满足最优性原理 找大问题与小问题的递推关系式
  • PyQt界面:左右界面由于控件太多不协调

    问题 在编写软件时 有左右两个子界面 都设置为网格布局 左界面是菜单 右界面是每个菜单对应的内容 当右界面的空间太多时 导致左界面的空间缩小 不协调 正常显示应如下 如下图 右边的一行控件太多 导致子界面左边界面宽度变窄 影响整体协调性 解