添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

QHBoxLayout

采用QBOXLayout类可以在水平和垂直方向上排列控件,QHBoxLayout和QVBoxLayout类继承自QBoxLayout
采用QHBoxLayout类,按照从左到右的顺序来添加控件

QHBoxLayout类中常用的方法如下

方法 描述
addLayout(self,stretch=0) 在窗口的右边添加布局,使用stretch(伸缩量)进行伸缩,伸缩量默认为0
addWidget(self,QWidget.stretch,Qt.Alignmeny alihnment) 在布局中添加控件
stretch(伸缩量),只适用于QBoxLayout,控件和窗口会随着伸缩量的变大而增大
alignment:指定的对齐方式
addSpacing(self,int) 设置各控件的上下间距,通过该方法可以增加额外的控件

对齐方式参数

参数 描述
Qt.AlignLeft 水平方向居左对齐
Qt.AlignRight水平方向具有对齐
Qt.AlignCenter 水平方向居中对齐
Qt.AlignJustify 水平方向两端对齐
Qt.AlignTop 垂直方向靠上对齐
Qt.AlignBottom 垂直方向靠下对齐
Qt.AlignVCenter 垂直方向居中对齐

实例:水平布局管理的例子

import sys from PyQt5.QtWidgets import QApplication ,QWidget ,QHBoxLayout , QPushButton class Winform (QWidget) : def __init__ (self,parent=None) : super(Winform,self).__init__(parent) self.setWindowTitle( "水平布局管理例子" ) # 水平布局按照从左到右的顺序进行添加按钮部件。 hlayout = QHBoxLayout() hlayout.addWidget( QPushButton(str( 1 ))) hlayout.addWidget( QPushButton(str( 2 ))) hlayout.addWidget( QPushButton(str( 3 ))) hlayout.addWidget( QPushButton(str( 4 ))) hlayout.addWidget( QPushButton(str( 5 ))) # todo 优化1 设置控件间距 #hlayout.setSpacing(20) self.setLayout(hlayout) if __name__ == "__main__" : app = QApplication(sys.argv) form = Winform() form.show() sys.exit(app.exec_())

运行效果图
这里写图片描述

优化一:设置各控件之间的间距
hlayout.setSpacing(20)

实例二:水平布局对齐方式的使用

在某些情况下,需要将布局中的某些控件居中,俱下显示,那么可以通过对齐方式参数Qt.Alignment来设置,示范如下

import sys from PyQt5.QtWidgets import QApplication ,QWidget ,QHBoxLayout , QPushButton from PyQt5.QtCore import Qt class Winform (QWidget) : def __init__ (self,parent=None) : super(Winform,self).__init__(parent) self.setWindowTitle( "水平布局管理例子" ) self.resize( 800 , 200 ) # 水平布局按照从左到右的顺序进行添加按钮部件。 hlayout = QHBoxLayout() #水平居左 垂直居上 hlayout.addWidget( QPushButton(str( 1 )) , 0 , Qt.AlignLeft | Qt.AlignTop) hlayout.addWidget( QPushButton(str( 2 )) , 0 , Qt.AlignLeft | Qt.AlignTop) hlayout.addWidget( QPushButton(str( 3 ))) #水平居左 垂直居下 hlayout.addWidget( QPushButton(str( 4 )) , 0 , Qt.AlignLeft | Qt.AlignBottom ) hlayout.addWidget( QPushButton(str( 5 )), 0 , Qt.AlignLeft | Qt.AlignBottom) self.setLayout(hlayout) if __name__ == "__main__" : app = QApplication(sys.argv) form = Winform() form.show() sys.exit(app.exec_())

运行效果图如下
这里写图片描述

  • 实例二:水平布局对齐方式的使用
  • QHBoxLayout前言采用QBOXLayout类可以在水平和垂直方向上排列控件,QHBoxLayout和QVBoxLayout类继承自QBoxLayout 采用QHBoxLayout类,按照从左到右的顺序来添加控件QHBoxLayout类中常用的方法如下 方法 描述 addLayout(self,stretch=0) 在窗口的右边添加布局,使用s... QH Box Layout * p Layout = new QH Box Layout ();//水平 布局 QPushButton* p1 = new QPushButton("p1"); QPu...
    创建第一个窗口一般来说,桌面应用都以窗口(window)形式呈现。因此,要搭建桌面应用,首先要创建窗口。下面这段代码创建了一个空的窗口。这段代码仅仅设置了窗口的标题和大小。下一步,我们要往这个空的窗口里添加部件(widget).为了规范性,我们在Window类里新建一个函数initUI,然后在initUI里为窗口添加部件。为窗口添加部件下面这段代码为窗口添加了一个按钮(QPushButton).但是我们发现,如果没有添加任何 布局 ,我们创建的按钮(self.btn),永远被放置在窗口的左上角。即使我们可以用move函数移动它,排版作用也非常有限。因此我们需要为窗口添加 布局 。为窗口添加 布局 PyQt
    创建 Q Box Layout 的最简单方法是使用便利类, QH Box Layout (用于 Qt::Horizo​​ntal 框)或 QV Box Layout (用于 Qt::Vertical 框)。也可以直接使用 Q Box Layout 构造函数,并指定其方向。 二、类型成员 1、enum Q Box Layout ::Directio.   是水平 布局 控件,是一个用于构建横向放置 布局 对象;继承Q Box Layout QH Box Layout :: QH Box Layout ()   构造一个新的水平 布局 管理 器,将它添加到另一个 布局 管理 器中 QH Box Layout :: QH ...
    pyqt5 中要做到自适应 布局 ,必须应用 Layout 类 下面列出类似于 html 中 float 功能的 布局 方法: 实现原理: PyQt5 中的 布局 中,stretch 属性类似于一个可自适应的空白 布局 。会尽可能将周围的组件 布局 向外挤压 from PyQt5 .QtWidgets import QV Box Layout , QH Box Layout # 垂直居中 def vcenter_ layout (*widgets): v box = QV Box Layout () v box .addStretch() for widget in widgets: v box .addWidget(widge
    Q Box Layout 可以在水平方向或垂直方向上排列控件,由 QH Box Layout 、QV Box Layout 所继承。 QH Box Layout :水平 布局 ,在水平方向上排列控件,即:左右排列。 QV Box Layout :垂直 布局 ,在垂直方向上排列控件,即:上下排列。 通过查看源码,我们可以发现,水平 布局 、垂直 布局 除了构造时的方向(L... from PyQt5 .QtWidgets import QApplication, QWidget, QV Box Layout , QPushButton app = QApplication([]) window = QWidget() layout = QV Box Layout () layout .addWidget(QPushButton('Button 1')) layout .addWidget(QPushButton('Button 2')) layout .addWidget(QPushButton('Button 3')) window.set Layout ( layout ) window.show() app.exec_() 2. QH Box Layout (水平 布局 ) 将控件在水平方向上排列。 ```python from PyQt5 .QtWidgets import QApplication, QWidget, QH Box Layout , QPushButton app = QApplication([]) window = QWidget() layout = QH Box Layout () layout .addWidget(QPushButton('Button 1')) layout .addWidget(QPushButton('Button 2')) layout .addWidget(QPushButton('Button 3')) window.set Layout ( layout ) window.show() app.exec_() 3. QGrid Layout (网格 布局 ) 将控件排列在网格中。 ```python from PyQt5 .QtWidgets import QApplication, QWidget, QGrid Layout , QPushButton app = QApplication([]) window = QWidget() layout = QGrid Layout () layout .addWidget(QPushButton('Button 1'), 0, 0) layout .addWidget(QPushButton('Button 2'), 0, 1) layout .addWidget(QPushButton('Button 3'), 1, 0) layout .addWidget(QPushButton('Button 4'), 1, 1) window.set Layout ( layout ) window.show() app.exec_() 4. QForm Layout (表单 布局 ) 将标签和输入控件排列在一起,以形成表单。 ```python from PyQt5 .QtWidgets import QApplication, QWidget, QForm Layout , QLineEdit, QLabel app = QApplication([]) window = QWidget() layout = QForm Layout () layout .addRow(QLabel('Name:'), QLineEdit()) layout .addRow(QLabel('Age:'), QLineEdit()) layout .addRow(QLabel('Email:'), QLineEdit()) window.set Layout ( layout ) window.show() app.exec_() 以上是一些常用的 布局 管理 器,你也可以自己实现并自定义 布局 管理 器。