QGroupBox布局中简单的操作

2023-11-16

QGroupBox中布局各个控件的使用
注意:我是先用了Qt designer设计,然后根据转成的.py文件代码,进行适当修改得到的。将进行三个示例讲解
目录: QGroupBox上添加栅格布局
某一组件充满整个QGroupBox
QGroupBox上的组件按某比例进行显示
**示例1:**先来效果图进行展示:
在这里插入图片描述
进行放大窗口后要保持其控件比例不变,效果图如下:
在这里插入图片描述
以上图片是用Qt designer设计的
操作如下:
(1)
Qt designer保存的文件格式是.ui文件,如何将.ui文件转化为.py文件
打开cmd进入保存.ui文件的目录底下,然后输入指令
pyuic5 -o test.py test.ui
此指令就是将test.ui转为对应的test.py文件
(2)
但是直接运行该.py文件,则不能显示出想要的界面
解决办法:
一般需要导入两个包

from PyQt5.QtWidgets import QApplication
import sys

并且在.py文件中加入以下代码:

  if __name__ == "__main__":
        app = QtWidgets.QApplication(sys.argv)
        widget = QtWidgets.QWidget()
        ui = Ui_MainWindow()
        ui.setupUi(widget)
        widget.show()
        sys.exit(app.exec_())

因为.ui转成的.py文件类是如下的形式

class Ui_Form(object):

如果之前的设计的类是如下
在这里插入图片描述

需要理清楚代码流程需要自己进行改写
(3)
图片上的布局设计思路是
先定义一个QGroup,然后在QGroup上进行栅格布局,也就是表格布局,然后添加各个组件,代码如下

        self.groupBox = QtWidgets.QGroupBox(Form)
        self.groupBox.setObjectName("groupBox")
        self.gridLayout = QtWidgets.QGridLayout(self.groupBox)
        self.gridLayout.setObjectName("gridLayout")
        self.label = QtWidgets.QLabel(self.groupBox)
        self.label.setObjectName("label")
        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
        self.lineEdit = QtWidgets.QLineEdit(self.groupBox)
        self.lineEdit.setObjectName("lineEdit")
        self.gridLayout.addWidget(self.lineEdit, 0, 1, 1, 1)
        self.label_2 = QtWidgets.QLabel(self.groupBox)
        self.label_2.setObjectName("label_2")
        self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
        self.lineEdit_2 = QtWidgets.QLineEdit(self.groupBox)
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.gridLayout.addWidget(self.lineEdit_2, 1, 1, 1, 1)
        self.label_3 = QtWidgets.QLabel(self.groupBox)
        self.label_3.setObjectName("label_3")
        self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
        self.lineEdit_3 = QtWidgets.QLineEdit(self.groupBox)
        self.lineEdit_3.setObjectName("lineEdit_3")
        self.gridLayout.addWidget(self.lineEdit_3, 2, 1, 1, 1)
        self.gridLayout.setColumnStretch(0, 4)
        self.verticalLayout.addWidget(self.groupBox)

注意倒数第二行代码,该行实现了lineEdit与label之间的布局
**示例2:**图片效果展示:
放大后依然可以让某一个组件填充整个GroupBox
在这里插入图片描述
设计思路就是:
先建立一个QGroupBox
然后在QGroupBox上建立一个水平布局
继而在QGroupBox上放置label
然后把label添加到刚刚建立的水平布局上
代码示例是适用于类QWidget。自己改写后的.py文件如下:

        self.groupBox3 = QGroupBox("top")
        self.horizontalLayout = QHBoxLayout(self.groupBox3)
        self.label = QLabel(self.groupBox3)
        self.horizontalLayout.addWidget(self.label)
        self.label.setText("") #此次添加一个空的label

示例三:
在这里插入图片描述
实现图片上的效果很简单
在水平布局上添加两个GroupBox即可实现
如何实现按比例呢
如图
在这里插入图片描述
只需要在水平布局代码上添加以下两行代码:

	self.MainHBoxLayout.setStretch(0, 3)
	self.MainHBoxLayout.setStretch(1, 7)

就完成了3:7的比例进行显示

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

QGroupBox布局中简单的操作 的相关文章

随机推荐

  • 深入理解 Spring 控制反转与依赖注入

    概览 对于 Spring 框架来说 控制反转 Inversion of Control IoC 和依赖注入 Dependency Injection DI 是个等同的概念 控制反转是通过依赖注入实现的 在这篇文章中 我们会详细介绍 IoC
  • 使用VS Code静态检查Android C/C++代码(clangd插件)

    前言 在前文使用VS Code更好的编写Android C C 代码 C C 插件 中主要介绍了如何更好的写代码 本文要探讨的是从 好写 到 写好 的问题 如何做静态代码检查 在查找资料中发现了Cppcheck和Clang Tidy等工具
  • 学位房如何查询学位真实性和户口是否被占用

    查户口有没占用 需要业主带上身份证 房产证去公安局户籍窗口查 他会口头告诉你这个地址的户口有没有人 不会出书面的东西 所以一定要听清楚 其实你和业主签三方合同的时候可以注明户口这方面的东西 比如多少号之前要迁走之类的 拿着房产证去公安局查户
  • JDBC连接MySQL8.0案例详解

    JDBC本质上是一个介于应用程序和数据库之间的公共接口 通过对这个接口的实现 我们可以建立应用程序和数据库之间的连接 便捷的访问数据库数据 不同版本的MySQL连接的参数是有一些小差别的 以下内容基于一个JDBC连接案例讲解连接数据库的过程
  • 图像分类如何得到每一类的预测概率?(结合python代码)

    要得到每一类的预测概率 首先通过torch eq判断每个图片预测的准不准确 循环每个预测结果 得到没个结果对应的标签 如果准确 在该标签类的正确数量加一 在该类的总的数量加一 最后输出该类正确的数量除以该类总的数量就得到了该类的预测概率了
  • NoClassDefFoundError产生原因,及解决办法

    目录 一 NoClassDefFoundError产生原因 二 NoClassDefFoundError 解决方法 三 实战训练 NoClassDefFoundError 是 Java 的一个运行时异常 表示在运行时无法找到某个类的定义 尽
  • 【xenclient】 使用小结 -- ubuntu的千百bug

    说道多系统 不能不提下ubuntu 以前redhat似乎是linux的领头羊 但在桌面领域 跟windows还是差得太远 在linux最弱的桌面特性上 ubuntu算是第一个以桌面特效全面超越windows的系统了 因此我的系统 除了保留做
  • Building Simulation Packet-Loss System in Channel

    Step 1 Produce a series of random frame numbers There is three input GOP and loss ratio For instance there is a 264 with
  • json文件怎么写注释

    1 使用编辑器打开json文件 现在是没有注释内容的 如果没有的话需要下载安装 2 一个json文件 其实就是一个js脚本文件 我们可以使用 的单行注释符 3 也可以使用 符号来支持多行注释 4 我们可以使用重复定义的方法来添加注释 jso
  • 微信小程序:分享一个百度地图微信小程序api

    分享一个百度地图微信小程序api http lbsyun baidu com index php title wxjsapi 使用也比较简单 天气就是以前车辆网的api 支持https 免费 支持POI查询 默认返回生活服务 美食 酒店三种
  • 柯洁终结神秘AI棋手41连胜 表示信心大增今夜未眠

    大型年度AI人物评选 2017中国AI英雄风云榜 评选进行中 奖项设置 技术创新人物TOP 10 商业创新人物TOP 10 表彰人物 华人科学家 学者 企业家 创业者 评委阵容 资深媒体人 AI投资人 AI专业机构等 颁奖 2017年12月
  • selenium官文文档阅读总结(day 3)

    1 关联型xpath的用法 driver find element By XPATH a text xxx ancestor 祖先元素的标签名 2 selenium等待 等待的作用 在系统运行的过程中 等待网页内容的加载显示 需要耗费的时间
  • 华为校招机试 - 工单调度策略(Java)

    题目描述 当小区通信设备上报警时 系统会自动生成待处理的工单 华为工单调度系统需要根据不同的策略 调度外线工程师 FME 上站修复工单对应的问题 根据与运营商签订的合同 不同严重程度的工单被处理并修复的时长要求不同 这个要求被修复的时长我们
  • 使用Go语言爬取网页并将其保存为图片

    要使用Go语言爬取网页并将其保存为图片 你可以使用Go的第三方库来实现 以下是一个使用chromedp库的示例代码 它使用Chrome浏览器的Headless模式来访问网页并截取屏幕截图 package main import contex
  • Mrtk 如何动态开启关闭网格渲染

    protected void Show IMixedRealityDataProviderAccess dataProviderAccess CoreServices SpatialAwarenessSystem as IMixedReal
  • Unity编辑器随机生成物体,更换场景之后物体丢失问题解决

    前言 obj GameObject PrefabUtility InstantiatePrefab configData bigMainScene 我在编辑器开发的时候实例化预制体到场景中之后 在跳转场景之后 然后在返回实例化过物体的场景会
  • 【Ansible自动化运维实战】使用Asible批量部署yum仓库

    Ansible自动化运维实战 使用Asible批量部署yum仓库 一 时间要求及目的 二 playbook内容 三 运行palybook 一 时间要求及目的 使用华为镜像源作为yum仓库批量分发达到所有受控端 二 playbook内容 ro
  • 【成电860考研】电子科技大学软件工程860考研专业课真题考频总结

    博主最近考研上岸啦 成电软件工程860专业课考了122 总分不高 这篇文章主要介绍专业课 我就不分享别的啦 博主考研的时候收集了几乎全网的资料 找到了几乎所有能找到的860资料进行汇总分析 得到了最后的真题考频 为了帮助学弟学妹们 博主决定
  • 4261. 孤独的照片

    数据范围为500 000 所以应该控制在O nlogn 或O n 我们发现要枚举的子串它其中有一个字母只出现一次 所以 我们可以去枚举只出现一次的字母是哪个 假设在第i个位置的字母为G 我们要枚举包含这个字母的 且只包含一个G的 且长度大于
  • QGroupBox布局中简单的操作

    QGroupBox中布局各个控件的使用 注意 我是先用了Qt designer设计 然后根据转成的 py文件代码 进行适当修改得到的 将进行三个示例讲解 目录 QGroupBox上添加栅格布局 某一组件充满整个QGroupBox QGrou