news 2026/7/28 18:13:37

PyQt5——布局管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PyQt5——布局管理

Qt Designer提供了四种窗口布局方式,分别是垂直布局(Vertical Layout)、水平布局(Horizontal Layout)、栅格布局(Grid Layout)和表单布局(Form Layout)

  • 垂直布局:控件默认按照从上到下的顺序进行纵向添加
  • 水平布局:控件默认按照从左到右的顺序横向添加。
  • 栅格布局:将窗口控件放入一个网格中,然后将它们合理地划分为若干行(row)和列(column)。
  • 表单布局:控件以两列的形式布局在表单中

使用布局管理器布局

打开Qt Designer,新建一个Widget空间,然后放入两个子控件:一个文本框(lineEdit)和一个按钮(pushButton)。选中两个控件,然后单击鼠标右键,然后在弹出的快捷菜单中选择布局的子菜单就可以指定该控件的布局方式,选择水平布局

# -*- coding: utf-8 -*-fromPyQt5importQtCore,QtGui,QtWidgetsclassUi_Form(object):defsetupUi(self,Form):Form.setObjectName("Form")Form.resize(889,682)self.widget=QtWidgets.QWidget(Form)self.widget.setGeometry(QtCore.QRect(310,50,216,25))self.widget.setObjectName("widget")self.horizontalLayout=QtWidgets.QHBoxLayout(self.widget)self.horizontalLayout.setContentsMargins(0,0,0,0)self.horizontalLayout.setObjectName("horizontalLayout")self.lineEdit=QtWidgets.QLineEdit(self.widget)self.lineEdit.setObjectName("lineEdit")self.horizontalLayout.addWidget(self.lineEdit)self.pushButton=QtWidgets.QPushButton(self.widget)self.pushButton.setObjectName("pushButton")self.horizontalLayout.addWidget(self.pushButton)self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)defretranslateUi(self,Form):_translate=QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form","Form"))self.pushButton.setText(_translate("Form","确定"))


新建一个MainWindow,然后对控件进行各种各样的布局

容器布局

容器控件就是指能够容纳子控件的控件,使用容器控件,目的就是将容器控件中的控件归为一类,已有别于其他控件。

在左侧容器(containers)导航栏中托人一个Frame控件,然后放入Label、LineEdit和Button控件。

# -*- coding: utf-8 -*-fromPyQt5importQtCore,QtGui,QtWidgetsclassUi_Form(object):defsetupUi(self,Form):Form.setObjectName("Form")Form.resize(889,682)self.frame=QtWidgets.QFrame(Form)self.frame.setGeometry(QtCore.QRect(250,130,264,43))self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)self.frame.setFrameShadow(QtWidgets.QFrame.Raised)self.frame.setObjectName("frame")self.horizontalLayout=QtWidgets.QHBoxLayout(self.frame)self.horizontalLayout.setObjectName("horizontalLayout")self.label=QtWidgets.QLabel(self.frame)self.label.setObjectName("label")self.horizontalLayout.addWidget(self.label)self.lineEdit=QtWidgets.QLineEdit(self.frame)self.lineEdit.setObjectName("lineEdit")self.horizontalLayout.addWidget(self.lineEdit)self.pushButton=QtWidgets.QPushButton(self.frame)self.pushButton.setObjectName("pushButton")self.horizontalLayout.addWidget(self.pushButton)self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)defretranslateUi(self,Form):_translate=QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form","Form"))self.label.setText(_translate("Form","姓名"))self.pushButton.setText(_translate("Form","确定"))

打开Qt Designer,新建一个主窗口中

拖到一个PushButton放在窗口中,查看右侧是属性编辑器

绝对布局

Geometry属性在PyQt中主要用来设置控件在窗口中的绝对坐标于自身控件的大小。

这里设置的意思就是按钮左上角距离主窗口右侧为280px,上侧为130px,宽度为75px,高度为23px。

然后再添加一些控件

minimumSize和maximumSize属性

minimumSize和maximumSize属性用来设置控件在布局管理器中的最小尺寸和最大尺寸。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/28 18:11:46

如何快速配置百度网盘批量转存工具:新手必看的完整教程

如何快速配置百度网盘批量转存工具:新手必看的完整教程 【免费下载链接】BaiduPanFilesTransfers 百度网盘批量转存、分享和检测工具 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduPanFilesTransfers 百度网盘批量转存工具BaiduPanFilesTransfers是一款…

作者头像 李华
网站建设 2026/7/28 18:10:10

activiti的25张表的建立

首先创建一个maven项目&#xff0c;然后在pom.xml中添加以下依赖<dependencies><dependency><groupId>org.activiti</groupId><artifactId>activiti-engine</artifactId><version>5.19.0.2</version></dependency><d…

作者头像 李华
网站建设 2026/7/28 18:06:03

办公效率翻倍!OpenClaw 2.7.9 本地部署 + 实用自动化指令汇总

当下主流对话式 AI 工具大多局限于文本交互场景&#xff0c;很难直接操控本地文件、浏览器、各类办公软件&#xff0c;难以覆盖电脑端重复操作需求。而 OpenClaw 核心亮点在于本地部署 自动化执行能力&#xff0c;能够读懂自然语言指令并自主完成各类电脑操作&#xff0c;非常…

作者头像 李华
网站建设 2026/7/28 17:55:45

技术解析|物联网智能锁如何解决民宿/网约房身份核验与远程授权痛点,实现安全合规与降本增效

0 摘要 随着文旅行业规范化监管持续升级&#xff0c;网约房、分散式民宿已全面纳入公安常态化管控体系&#xff0c;“实名、实人、实证、实时”四实登记成为行业刚性合规底线。区别于传统标准化酒店&#xff0c;分散式短租房源存在点位分散、租客流动性大、无固定前台值守、人工…

作者头像 李华
网站建设 2026/7/28 17:55:19

JAVA毕设选题推荐:基于 SpringBoot 的大学生校园生活分享与话题讨论平台 智慧校园社区发帖评论交流管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/7/28 17:54:40

shared_ptr简单应用

shared_ptr 是C共享指针&#xff0c;往往应用在动态分配内存的场景下。相较于new操作符的优势在于shared_ptr共享指针可以自动进行动态内存释放&#xff0c;而new必须与delete配合使用&#xff0c;否则会造成内存泄露。 一个好的建议是&#xff1a;坚持只使用智能指针&#xff…

作者头像 李华