基于PYQT5的GUI开发系列教程【二】QT五个布局的介绍与运用

目录

本文概述

作者介绍

创建主窗口

水平布局 

垂直布局

栅格布局

分裂器水平布局

分裂器垂直布局 

自由布局 

取消原先控件的布局的方法 

尾言


本文概述

PYQT5是一个基于python的可视化GUI开发框架,具有容易上手,界面美观,多平台部署等优点,作者将通过一系列教程,带领大家从零基础到入门~能够自主实现GUI开发。

 作者介绍

作者本人是一名人工智能炼丹师,目前在实验室主要研究的方向为生成式模型,对其它方向也略有了解,希望能够在CSDN这个平台上与同样爱好人工智能的小伙伴交流分享,一起进步。谢谢大家鸭~~~

 如果你觉得这篇文章对您有帮助,麻烦点赞、收藏或者评论一下,这是对作者工作的肯定和鼓励。  

创建主窗口

我们选择Main Window然后点击创建,即可创建我们GUI界面的主窗口 

水平布局 

首先,我们从左边的控件栏里拖动5个按钮控件进我们的主窗口里 

然后,我们按住鼠标左键,将主界面中的五个按钮控件选中

 然后点击鼠标右键,选择布局中的水平布局

我们可以尝试拖动改变一下水平布局的宽高,我们可以发现水平布局中的按钮控件会保持等宽,等距离。其中,布局中的按钮控件的宽度会随着水平布局的宽度的改变进行改变,但是按钮控件的高度不会随着布局的高度改变进行改变 

 垂直布局

同水平布局一样,我们先准备5个按钮控件并垂直摆放

 选择布局中的垂直布局

 我们可以尝试拖动改变一下垂直布局的宽高,我们可以发现垂直布局中的按钮控件会保持等宽,等距离。其中,布局中的按钮控件的宽度会随着垂直布局的宽度的改变进行改变,但是按钮控件的高度不会随着布局的高度改变进行改变 

 栅格布局

我们模仿键盘上的数字区,布置11个按钮控件,具体如下图所示

 我们选中所有控件后,选中栅格布局

我们可以尝试拖动改变一下栅格布局的宽高,我们可以发现栅格布局中的按钮控件会保持等宽,等距离。其中,布局中的按钮控件的宽度会随着栅格布局的宽度的改变进行改变,但是按钮控件的高度不会随着布局的高度改变进行改变 

此外,我们还需要尽可能的将控件摆放整齐,否者布局后的控件位置可能会错乱 ,如下图的错误例子演示

不过实际使用下来,布局的识别还是非常准确的,只要不是歪得太离谱,基本都能准确识别。 

 分裂器水平布局

继续请出我们的老演员F5

布局选中分裂器水平布局 

我们可以尝试拖动改变一下分裂器水平布局的宽高,我们可以发现分裂器水平布局中的按钮控件会保持等宽,等距离。其中,布局中的按钮控件的宽度会随着分裂器水平布局的宽度的改变进行改变,按钮控件的高度也会随着布局的高度改变进行改变。 

分裂器垂直布局 

 跟上面的操作,差不多

 我们可以尝试拖动改变一下分裂器垂直布局的宽高,我们可以发现分裂器垂直布局中的按钮控件会保持等宽,等距离。其中,布局中的按钮控件的宽度会随着分裂器垂直布局的宽度的改变进行改变,按钮控件的高度也会随着布局的高度改变进行改变。 

自由布局 

自由布局顾名思义就是控件的位置,大小都是我们自己手动去调整的,也可以通过控件的属性编辑器去进行调整。 

我们先创建一个控件,并选中该控件

其中,geometry属性中的[(301,275),]是该控件与它上级容器左上角的坐标,比如目前我们这个按钮控件是放在主窗口下的,所以这个(301,275)就是距离主窗口左上角坐标(0,0)的x,y距离。如果我们把这个控件放到一个容器窗口里,那么这个坐标就是基于容器窗口左上角的坐标去决定的。因此我们可以更改geometry里面的这个坐标去改变我们控件的相对位置

[,75x20]是控件的 宽和高,我们也可以通过修改这个参数去改变控件的宽和高

取消原先控件的布局的方法 

 对已经有布局的控件右键,然后选中布局中的打破布局即可

这一章的内容确实有点水,主要没有太多东西好讲的 

尾言

 如果您觉得这篇文章对您有帮忙,请点赞、收藏。您的点赞是对作者工作的肯定和鼓励,这对作者来说真的非常重要。如果您对文章内容有任何疑惑和建议,欢迎在评论区里面进行评论,我将第一时间进行回复。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/147223.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 实现运算符重载

代码&#xff1a; #include <iostream> #include <cstring>using namespace std;class myString { private:char *str; //记录c风格的字符串int size; //记录字符串的实际长度 public://无参构造myString():size(10){str new char[size]; …

【学习笔记】深度学习分布式系统

深度学习分布式系统 前言1. 数据并行&#xff1a;参数服务器2. 流水线并行&#xff1a;GPipe3. 张量并行&#xff1a;Megatron LM4. 切片并行&#xff1a;ZeRO5. 异步分布式&#xff1a;PATHWAYS总结参考链接 前言 最近跟着李沐老师的视频学习了深度学习分布式系统的发展。这里…

Scrapy-应对反爬虫机制

参考自https://blog.csdn.net/y472360651/article/details/130002898 记得把BanSpider改成自己的项目名&#xff0c;还有一个细节要改一下&#xff0c;把代码user换成user_agent 禁止Cookie 在Scrapy项目中的settings文件&#xff0c;可以发现文件中有以下代码: COOKIES_ENA…

设计模式之适配器模式:接口对接丝般顺滑(图代码解析面面俱到)

目录 概要概念组成类图工作原理应用场景优点 类型类适配器模式对象适配器模式两者区别示例代码 实现&#xff08;对象适配器详解&#xff09;业务背景代码 常见问题为什么有适配器模式适配器模式告诉我们什么适配器模式体现了哪些设计原则关联方式实现了逻辑继承适配器模式在Sp…

深入理解C语言(1):数据在内存中的存储

文章主题&#xff1a;数据在内存中的存储&#x1f30f;所属专栏&#xff1a;深入理解C语言&#x1f4d4;作者简介&#xff1a;更新有关深入理解C语言知识的博主一枚&#xff0c;记录分享自己对C语言的深入解读。&#x1f606;个人主页&#xff1a;[₽]的个人主页&#x1f3c4;&…

JavaSE | 初识Java(六) | 数组 (上)

数组的创建及初始化 T[] 数组名 new T[N]; //T&#xff1a;表示数组中存放元素的类型 //T[]&#xff1a;表示数组的类型 //N&#xff1a;表示数组的长度 int[] array1 new int[10]; // 创建一个可以容纳10个int类型元素的数组 double[] array2 new double[5]; // 创建一个可…

SDI-12协议与STM32 进行uart通信

场景是用stm32与一款温湿度传感器通信&#xff0c;不过是基于SDI-12协议&#xff0c;SDI-12时序和UART类似&#xff0c;故采用UART传输&#xff0c;原理图如下 其中DIR_OUT_SDI是一个IO引脚&#xff0c;控制UART_TX_SDI是否使能&#xff0c;U10是三态门IC&#xff0c;即拉低DIR…

Redis是否要分库的实践

Redis的分库其实没有带来任何效率上的提升&#xff0c;只是提供了一个命名空间&#xff0c;而这个命名空间可以完全通过key的设计来避开这个问题。 一个优雅的Redis的key的设计如下

YoloV5实时推理最短的代码

YoloV5实时推理最简单代码 import cv2 import torch# 加载YOLOv5模型 model torch.hub.load(ultralytics/yolov5, yolov5s)# 使用CPU或GPU进行推理 device cuda if torch.cuda.is_available() else cpu model.to(device)# 打开摄像头&#xff08;默认摄像头&#xff09; cap…

适合在校学生的云服务器有哪些?

随着云计算技术的发展&#xff0c;越来越多的学生开始使用云服务器来进行学习和实践。对于学生来说&#xff0c;选择一款便宜的云服务器不仅可以帮助他们降低成本&#xff0c;还可以提高学习和实践的效率。本文将介绍几款适合学生使用的便宜云服务器。 1、腾讯云学生服务器【点…

<Xcode> Xcode IOS无开发者账号打包和分发

关于flutter我们前边聊到的初入门、数据解析、适配、安卓打包、ios端的开发和黑苹果环境部署&#xff0c;但是对于苹果的打包和分发&#xff0c;我只是给大家了一个链接&#xff0c;作为一个顶级好男人&#xff0c;我认为这样是对大家的不负责任&#xff0c;那么这篇就主要是针…

[论文必备]最强科研绘图分析工具Origin(1)——安装教程

之前在论文中pr曲线和loss曲线对比用到了Origin这个最强科研绘图分析工具&#xff0c;被导师狠狠夸了&#xff0c;下面来分享一下~ 本篇先带你手把手安装这个软件&#xff0c;可以先点再慢慢看哦~ 目录 &#x1f4e2;一、软件简介 &#x1f33b;二、安装教程 &#x1f384…

Docker命令起别名

1.打开.bashrc文件 vi ~/.bashrc 2. 起别名 alias dpsdocker ps --format "table{{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Status}}" alias disdocker images 3. 文件生效 source ~/.bashrc 4.展示

CF505B Mr. Kitayuta‘s Colorful Graph

Mr. Kitayuta’s Colorful Graph 题面翻译 给出一个 n n n 个点&#xff0c; m m m 条边的无向图&#xff0c;每条边上是有颜色的。有 q q q 组询问 对于第 i i i 组询问&#xff0c;给出点对 u i , v i u_i,v_i ui​,vi​。求有多少种颜色 c c c 满足&#xff1a;有至…

在线OJ项目核心思路

文章目录 在线OJ项目核心思路1. 项目介绍2.预备知识理解多进程编程为啥采用多进程而不使用多线程?标准输入&标准输出&标准错误 3.项目实现题目API实现相关实体类定义新增/修改题目获取题目列表 编译运行编译运行流程 4.统一功能处理 在线OJ项目核心思路 1. 项目介绍 …

使用腾讯云服务器安装宝塔Linux面板教程_图文全流程

使用腾讯云服务器搭建网站全流程&#xff0c;包括轻量应用服务器和云服务器CVM建站教程&#xff0c;轻量可以使用应用镜像一键建站&#xff0c;云服务器CVM可以通过安装宝塔面板的方式来搭建网站&#xff0c;腾讯云服务器网分享使用腾讯云服务器建站教程&#xff0c;新手站长搭…

Linux基本指令(二)

&#x1f493;博主个人主页:不是笨小孩&#x1f440; ⏩专栏分类:数据结构与算法&#x1f440; C&#x1f440; 刷题专栏&#x1f440; C语言&#x1f440; &#x1f69a;代码仓库:笨小孩的代码库&#x1f440; ⏩社区&#xff1a;不是笨小孩&#x1f440; &#x1f339;欢迎大…

MySQL 索引优化实践(单表)

目录 一、前言二、表数据准备三、常见业务无索引查询耗时测试3.1、通过订单ID / 订单编号 查询指定订单3.2、查询订单列表 四、订单常见业务索引优化实践4.1、通过唯一索引和普通索引优化通过订单编号查询订单信息4.2、通过普通联合索引优化订单列表查询4.2.1、分析查询字段的查…

YAMLException : java.nio.charset.MalformedInputException : Input length = 1

场景还原 有小伙伴反应SpringBoot项目启动异常&#xff0c;但是同组其他伙伴的无问题&#xff01; ERROR org.springframework.boot.SpringApplication - Application run failedorg.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException : Inpu…

决策树C4.5算法的技术深度剖析、实战解读

目录 一、简介决策树&#xff08;Decision Tree&#xff09;例子&#xff1a; 信息熵&#xff08;Information Entropy&#xff09;与信息增益&#xff08;Information Gain&#xff09;例子&#xff1a; 信息增益比&#xff08;Gain Ratio&#xff09;例子&#xff1a; 二、算…