Pyside6 --Qt设计师--简单了解各个控件的作用之:Layouts,Spaces

目录

  • 一、Layouts
    • 1.1 Vertical Layout说明
      • 1.1.1 Qt设计师图
      • 1.1.2 py代码
    • 1.2 Horizontal Layout说明
      • 1.2.1 Qt设计师图
      • 1.2.2 py代码
    • 1.3 Grid Layout说明
      • 1.3.1 Qt设计师图
      • 1.3.2 py代码
    • 1.4 Form Layout说明
      • 1.4.1 Qt设计师图
      • 1.4.2 py代码
  • 二、Spaces(空格)
    • 2.1 说明
    • 2.2 使用
    • 2.3 Horizontal Spaces
      • 2.3.1 代码
      • 2.3.1 图片
    • 2.4 Vertical Spaces
      • 2.4.1 代码
      • 2.4.2 图片

这一块的内容我就按照Qt设计师的分类的进行解释,
作者也是查阅大量文章,网站,进行学习!

一、Layouts

名称翻译作用
Vertical Layout垂直布局顾名思义,就是将垂直布局,从上到下,移动放大页面时候,自动填充,不会失真
Horizontal Layout水平布局顾名思义,就是将元素水平布局,从左到右,移动放大页面时候,自动填充,不会失真
Grid Layout网格布局网格布局将控件放置在一个类似表格的网格中。可以指定控件所占的行和列,适合复杂的布局,例如表单、数据输入界面等;可以设置控件在网格中的位置(行和列),并支持合并单元格等功能。
Form Layout表单布局表单布局用于将标签和输入控件(如文本框)配对,并自动对齐。这种布局通常用于创建表单界面,其中标签和对应的输入控件并排显示;适用于表单样式的界面,标签通常在左边,输入框在右边。

详细的介绍,后续涉及到会单独写各个属性啥的之类的作用! @ymchuangke

1.1 Vertical Layout说明

1.1.1 Qt设计师图

在这里插入图片描述

1.1.2 py代码

import sys #
# sys 模块提供了对 Python 解释器的一些基本操作和功能。
# 这里主要用于传递命令行参数(sys.argv)给 QApplication,以及在应用结束时退出程序(sys.exit())from PySide6.QtWidgets import QApplication, QMainWindow
from PySide6.QtWidgets import QPushButton # 导入按钮控件
from PySide6.QtWidgets import QWidget # 创建容器
from PySide6.QtWidgets import QVBoxLayout # 导入垂直布局
# Pyside6.QtWidgets: 模块包含GUI开发所需的绝大多数类
# QApplication:是 PySide6 中的应用程序对象,管理应用的执行流程和GUI控件的事件循环。它是创建任何 Qt 应用的必需对象
# QMainWindow:是一个应用程序主窗口的基类,提供了窗口的框架,通常包含菜单、工具栏、状态栏等功能。我们的 MainWindow 类继承了这个类# 定义一个类Window
class window(QMainWindow): # window继承父类QMainwindow,def __init__(self): # 初始化# 初始化窗口设置super().__init__() # 调用父类(QMainwindow中的构造函数,初始化窗口的基本设置1self.setWindowTitle("这是Layout-Vertical Layouts") # titleself.setGeometry(500,300,800,600)  # Gemoetry 几何的意思,就是设置几何画布,四个参数,一个坐标(x,y),一个长,一个宽,单位像素px# (500,300) 坐标,窗口左上角第一个点举例桌面左上角# 800,600: 800x600px# 创建主页面上方的容器(可以往里添加控件等)centrel_widget = QWidget(self)self.setCentralWidget(centrel_widget) # 我的理解就是添加一个容器# 创建垂直布局layout = QVBoxLayout()# 创建按钮(3个吧)、button_1 = QPushButton("按钮1")button_2 = QPushButton("按钮2")button_3 = QPushButton("按钮3")# 将创建的按钮添加到layoutlayout.addWidget(button_1)layout.addWidget(button_2)layout.addWidget(button_3)# 设置窗口的布局centrel_widget.setLayout(layout)if __name__ == "__main__": # 这行确保这段程序作为主程序运行时才会执行以下代码app = QApplication(sys.argv) # 创建一个 QApplication 对象,接收命令行参数 sys.argvmain_window = window() # 实例化 Window 类,创建主窗口。main_window.show() # 显示主窗口。sys.exit(app.exec()) # 进入 Qt 的事件循环(app.exec()),一直显示该窗口!# 后续添加槽就可以点击连接事件了!

如下图:
在这里插入图片描述

在这里插入图片描述

1.2 Horizontal Layout说明

1.2.1 Qt设计师图

在这里插入图片描述

1.2.2 py代码

import sys #
# sys 模块提供了对 Python 解释器的一些基本操作和功能。
# 这里主要用于传递命令行参数(sys.argv)给 QApplication,以及在应用结束时退出程序(sys.exit())from PySide6.QtWidgets import QApplication, QMainWindow
# Pyside6.QtWidgets: 模块包含GUI开发所需的绝大多数类
# QApplication:是 PySide6 中的应用程序对象,管理应用的执行流程和GUI控件的事件循环。它是创建任何 Qt 应用的必需对象
# QMainWindow:是一个应用程序主窗口的基类,提供了窗口的框架,通常包含菜单、工具栏、状态栏等功能。我们的 MainWindow 类继承了这个类from PySide6.QtWidgets import QWidget # 创建容器
from PySide6.QtWidgets import QPushButton # 按钮
from PySide6.QtWidgets import QHBoxLayout #水平布局# 定义一个类Window
class window(QMainWindow): # window继承父类QMainwindow,def __init__(self): # 初始化# 初始化窗口设置super().__init__() # 调用父类(QMainwindow中的构造函数,初始化窗口的基本设置1self.setWindowTitle("水平布局!") # titleself.setGeometry(500,300,800,600)  # Gemoetry 几何的意思,就是设置几何画布,四个参数,一个坐标(x,y),一个长,一个宽,单位像素px# (500,300) 坐标,窗口左上角第一个点举例桌面左上角# 800,600: 800x600px# 创建容器centrel_widget = QWidget(self)self.setCentralWidget(centrel_widget)# 创建水平布局hor_layout = QHBoxLayout(centrel_widget)# 创建按钮button_1 = QPushButton("按钮1")button_2 = QPushButton("按钮2")button_3 = QPushButton("按钮3")# 添加按钮到布局中中hor_layout.addWidget(button_1)hor_layout.addWidget(button_2)hor_layout.addWidget(button_3)# 设置水平布局到容器里面centrel_widget.setLayout(hor_layout)if __name__ == "__main__": # 这行确保这段程序作为主程序运行时才会执行以下代码app = QApplication(sys.argv) # 创建一个 QApplication 对象,接收命令行参数 sys.argvmain_window = window() # 实例化 Window 类,创建主窗口。main_window.show() # 显示主窗口。sys.exit(app.exec()) # 进入 Qt 的事件循环(app.exec()),一直显示该窗口!

在这里插入图片描述
在这里插入图片描述

1.3 Grid Layout说明

1.3.1 Qt设计师图

在这里插入图片描述

1.3.2 py代码

import sys #
# sys 模块提供了对 Python 解释器的一些基本操作和功能。
# 这里主要用于传递命令行参数(sys.argv)给 QApplication,以及在应用结束时退出程序(sys.exit())from PySide6.QtWidgets import QApplication, QMainWindow
# Pyside6.QtWidgets: 模块包含GUI开发所需的绝大多数类
# QApplication:是 PySide6 中的应用程序对象,管理应用的执行流程和GUI控件的事件循环。它是创建任何 Qt 应用的必需对象
# QMainWindow:是一个应用程序主窗口的基类,提供了窗口的框架,通常包含菜单、工具栏、状态栏等功能。我们的 MainWindow 类继承了这个类from PySide6.QtWidgets import QWidget # 创建容器
from PySide6.QtWidgets import QGridLayout # 创建网格布局
from PySide6.QtWidgets import QPushButton# 定义一个类Window
class window(QMainWindow): # window继承父类QMainwindow,def __init__(self): # 初始化# 初始化窗口设置super().__init__() # 调用父类(QMainwindow中的构造函数,初始化窗口的基本设置1self.setWindowTitle("垂直布局!") # titleself.setGeometry(500,300,800,600)  # Gemoetry 几何的意思,就是设置几何画布,四个参数,一个坐标(x,y),一个长,一个宽,单位像素px# (500,300) 坐标,窗口左上角第一个点举例桌面左上角# 800,600: 800x600px# 创建容器centrel_widget = QWidget(self)self.setCentralWidget(centrel_widget)# 创建网格布局grid_layout = QGridLayout(centrel_widget) # 把容器设置为网格布局# 创建按钮button_1 = QPushButton("按钮1")button_2 = QPushButton("按钮2")button_3 = QPushButton("按钮3")button_4 = QPushButton("按钮4")button_5 = QPushButton("按钮5")# 添加按钮到网格布局中 (一行2个),最后一个演示特殊用法# 想象一下这个网格(有点矩阵的感觉)grid_layout.addWidget(button_1,0,0)  # (0,0)grid_layout.addWidget(button_2,0,1)  # (0,1)grid_layout.addWidget(button_3,1,0)  # (1,0)grid_layout.addWidget(button_4,1,1)  # (1,1)grid_layout.addWidget(button_5,3,0,1,3) # 放在第三行第一个位置,(3,0),占一行三列(1,3)# 设置网格布局到容器里面centrel_widget.setLayout(grid_layout)if __name__ == "__main__": # 这行确保这段程序作为主程序运行时才会执行以下代码app = QApplication(sys.argv) # 创建一个 QApplication 对象,接收命令行参数 sys.argvmain_window = window() # 实例化 Window 类,创建主窗口。main_window.show() # 显示主窗口。sys.exit(app.exec()) # 进入 Qt 的事件循环(app.exec()),一直显示该窗口!

在这里插入图片描述
在这里插入图片描述

1.4 Form Layout说明

1.4.1 Qt设计师图

在这里插入图片描述

1.4.2 py代码

import sys
from PySide6.QtWidgets import QMainWindow, QApplication, QWidget, QFormLayout, QLabel, QLineEdit, QPushButtonclass Main_Window(QMainWindow):def __init__(self):# 初始化super().__init__()self.setWindowTitle("表单布局")self.setGeometry(300, 100, 800, 600)# 创建主页面容器centrel_widget = QWidget(self)self.setCentralWidget(centrel_widget)# 创建表单布局form_layout = QFormLayout(centrel_widget)# 创建标签和输入框self.name_label = QLabel("姓名:")self.name_input = QLineEdit()  # 输入框self.age_label = QLabel("年龄:")self.age_input = QLineEdit()  # 输入框self.email_label = QLabel("邮箱:")self.email_input = QLineEdit()  # 输入框# 将标签和输入框添加到表单中form_layout.addRow(self.name_label,self.name_input)form_layout.addRow(self.age_label,self.age_input)form_layout.addRow(self.email_label,self.email_input)# 添加提交按钮self.submit_button = QPushButton("提交")form_layout.addRow(self.submit_button)# 激活centrel_widget.setLayout(form_layout)if __name__ == "__main__":app = QApplication(sys.argv)main_Window = Main_Window()main_Window.show()sys.exit(app.exec())

在这里插入图片描述
在这里插入图片描述

二、Spaces(空格)

2.1 说明

名称翻译
Horizontal Spacer垂直空格
Vertical Spaces水平空格

2.2 使用

就是可以调整不同控件的间隙

如下:
在这里插入图片描述

2.3 Horizontal Spaces

2.3.1 代码

import sysfrom PySide6.QtWidgets import QApplication, QWidget, QHBoxLayout, QMainWindow, QPushButton, QSpacerItem
from PySide6.QtWidgets import QSizePolicy, QSpacerItemclass Main_window(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle("水平空格!")self.setGeometry(200,100,800,600)# 创建容器centrel_widget = QWidget(self)self.setCentralWidget(centrel_widget)# 创建水平布局hor_layout = QHBoxLayout()# 创建水平控件h_spacer = QSpacerItem(300,30) # (x,y) 第一个参数表示长度,第二个表示高度# 创建按钮button_1 = QPushButton("按钮1")button_2 = QPushButton("按钮2")# 把创建的按钮添加到水平布局里面hor_layout.addWidget(button_1)hor_layout.addItem(h_spacer) # 添加水平空格hor_layout.addWidget(button_2)# 把这个hor_layout作为参数传递给窗口主控centrel_widget.setLayout(hor_layout)if __name__ == "__main__":app = QApplication(sys.argv)main_window = Main_window()main_window.show()sys.exit(app.exec())

2.3.1 图片

在这里插入图片描述
在这里插入图片描述

2.4 Vertical Spaces

2.4.1 代码

import  sys
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout
from PySide6.QtWidgets import QSpacerItem, QSizePolicy, QWidgetclass Main_window(QMainWindow):def __init__(self):super().__init__()# 初始化self.setWindowTitle("垂直空格!")self.setGeometry(200,100,800,600)# 主控centrel_window = QWidget(self)self.setCentralWidget(centrel_window)# 添加垂直布局v_layout = QVBoxLayout()# 添加按钮button_1 = QPushButton("按钮1")button_2 = QPushButton("按钮2")# 添加垂直空格v_space = QSpacerItem(10, 400)# 添加按钮到垂直布局v_layout.addWidget(button_1)v_layout.addItem(v_space)v_layout.addWidget(button_2)# layout->centrel_widgetcentrel_window.setLayout(v_layout)if __name__ == "__main__":app = QApplication(sys.argv)main_window = Main_window()main_window.show()sys.exit(app.exec())

2.4.2 图片

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

利用红黑树封装map,和set,实现主要功能

如果不知道红黑树是什么的时候可以去看看这个红黑树 思路 首先我们可以把封装分为两个层面理解,上层代码就是set,和map,底层就是红黑树 就相当于根据红黑树上面套了两个map,set的壳子,像下面这张图一样 对于map和set,map里面存…

自动化测试之等待方式详解

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 在自动化测试中,等待是一个重要的技术,用于处理页面加载、元素定位、元素状态改变等延迟问题。 等待能够确保在条件满足后再进行后续操…

重学SpringBoot3-WebClient配置与使用详解

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-WebClient配置与使用详解 1. 简介2. 环境准备2.1 依赖配置 3. WebClient配置3.1 基础配置3.2 高级配置3.3 retrieve()和exchange()区别 4. 使用示例4.1 …

8.16DEBUG——DOCKER相关,DOCKER启动异常

DOCKER启动异常 问题一 WSL启动出现异常,导致DOCKER都无法运行 首先执行wsl --shutdown,再重启 但是重启时依然出现如上问题 首先按照网上教程,尝试去掉环境变量中冗余错误的变量定义 但是并没有解决,执行如下命令&#xff0c…

如何利用内链策略提升网站的整体权重?

内链是谷歌SEO中常常被低估的部分,实际上,合理的内链策略不仅能帮助提升页面间的关联性,还可以增强网站的整体权重。通过正确的内链布局,用户可以更流畅地浏览你的网站,谷歌爬虫也能更快地抓取到更多页面,有…

2021数学分析【南昌大学】

2021 数学分析 求极限 lim ⁡ n → ∞ 1 n ( n + 1 ) ( n + 2 ) ⋯ ( n + n ) n \lim_{n \to \infty} \frac{1}{n} \sqrt [n]{(n+1)(n+2) \cdots (n+n)} n→∞lim​n1​n(n+1)(n+2)⋯(n+n) ​ lim ⁡ n → ∞ 1 n ( n + 1 ) ( n + 2 ) ⋯ ( n + n ) n = lim ⁡ n → ∞ ( n + …

【金猿CIO展】复旦大学附属中山医院计算机网络中心副主任张俊钦:推进数据安全风险评估,防范化解数据安全风险,筑牢医疗数据安全防线...

‍ 张俊钦 本文由复旦大学附属中山医院计算机网络中心副主任张俊钦撰写并投递参与“数据猿年度金猿策划活动——2024大数据产业年度优秀CIO榜单及奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 数据要素时代,医疗数据已成为医院运营与决策的重要基石…

Cocos Json

类定义: export class PersonalInformation {public name: string;public age: number;public nationality: string;public gender: string;public height: number;public constructor(name: string, age: number, nationality: string, gender: string, height: n…

Qt开发技巧(二十四)滚动部件的滑动问题,Qt设置时区问题,自定义窗体样式不生效问题,编码格式问题,给按钮左边加个图,最小化后的卡死假象

继续记录一些Qt开发中的技巧操作: 1.滚动部件的滑动问题 再Linux嵌入式设备上,有时候一个页面的子部件太多,一屏放不下是需要做页面滑动,可以使用“QScrollArea”控件,拖来一个“QScrollArea”控件,将子部件…

Prime1_解法一:cms渗透 内核漏洞提权

Prime1_解法一:cms渗透 & 内核漏洞提权 文章目录 Prime1_解法一:cms渗透 & 内核漏洞提权信息收集主机发现nmap扫描tcp扫描tcp详细扫描22,80端口udp扫描漏洞脚本扫描 目录爆破dirsearch Web渗透wfuzz常见的 wfuzz 过滤器: …

保护数字资产:iOS 加固在当前安全环境中的重要性

随着互联网和手机的发展,APP在我们的日常生活中已经变得无处不在,各大平台的应用程序成为了黑客攻击的主要目标。尤其在 2024 年,随着数据泄露和隐私侵犯事件的频发,手机应用的安全问题再次成为公众关注的焦点。近期,多…

Qt Designer Ui设计 功能增加

效果展示 输入密码,密码错误,弹出提示 密码正确,弹出提示并且关闭原窗口 代码(只提供重要关键主代码)lxh_log.py代码: import sysfrom PySide6.QtWidgets import QApplication, QWidget, QPushButtonfrom …

基于Transformer的编码器-解码器图像描述模型在AMD GPU上的应用

Transformer based Encoder-Decoder models for image-captioning on AMD GPUs — ROCm Blogs 图像描述,即基于生成式人工智能(GenAI)自动生成简洁的图像文本描述,在现实世界中有着非常重要的应用。例如,图像描述可以为…

AI技术在电商行业中的应用与发展

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

项目-02-数学学院后台项目开发过程中的问题总结

目录 一、后台(pc端,vue2)1. dialog对话框被黑色蒙层盖住2. 将前端表格导出为word文档3. 在线查看、下载 .docx、.doc、.pdf文档 一、后台(pc端,vue2) 1. dialog对话框被黑色蒙层盖住 问题: d…

大语言模型技术相关知识-笔记整理

系列文章目录 这个系列攒了很久。主要是前段之间面试大语言模型方面的实习(被拷打太多次了),然后每天根据面试官的问题进行扩展和补充的这个笔记。内容来源主要来自视频、个人理解以及官方文档中的记录。方便后面的回顾。 文章目录 系列文章…

【计算机网络】实验11:边界网关协议BGP

实验11 边界网关协议BGP 一、实验目的 本次实验旨在验证边界网关协议(BGP)的实际作用,并深入学习在路由器上配置和使用BGP协议的方法。通过实验,我将探索BGP在不同自治系统之间的路由选择和信息交换的功能,理解其在互…

HTTP协议图--HTTP 报文实体

1. HTTP 报文实体概述 HTTP 报文结构 大家请仔细看看上面示例中,各个组成部分对应的内容。 接着,我们来看看报文和实体的概念。如果把 HTTP 报文想象成因特网货运系统中的箱子,那么 HTTP 实体就是报文中实际的货物。 报文:是网络…

PCL DipG-Seg 地面分割实现

DipG-Seg采用基于像素的图像方法,将点云投影到两个图像面,经过投影图像生成,图像预分割、图像精细分割、标签投票等步骤,完成对于地面的分割。验证后其分割效果优于patchwork++等传统算法,16线激光雷达可以达到200hz的速度。代码可以由单模态激光雷达数据扩展到多模态点云…

MySQL大小写敏感、MySQL设置字段大小写敏感

文章目录 一、MySQL大小写敏感规则二、设置数据库及表名大小写敏感 2.1、查询库名及表名是否大小写敏感2.2、修改库名及表名大小写敏感 三、MySQL列名大小写不敏感四、lower_case_table_name与校对规则 4.1、验证校对规则影响大小写敏感4.1、验证校对规则影响排序 五、设置字段…