PyQt5 QBoxLayout 类

PyQt5 QBoxLayout 类

QBoxLayout 类将小部件垂直或水平排列。其派生类有 QVBoxLayout (用于垂直排列小部件)和 QHBoxLayout (用于水平排列小部件)。以下表格显示了 QBoxLayout 类的重要方法−

序号 方法和描述
1 addWidget() 将小部件添加到BoxLayout中
2 addStretch() 创建一个空的可扩展的盒子
3 addLayout() 添加另一个嵌套布局

示例

在垂直盒式布局中添加了两个按钮。使用 addStretch() 方法在它们之间添加了一个可拉伸的空白空间。因此,如果顶级窗口被调整大小,按钮的位置会自动重新定位。

import sys
from PyQt5.QtCore import * 
from PyQt5.QtGui import * 
from PyQt5.QtWidgets import *

def window():
   app = QApplication(sys.argv)
   win = QWidget()

   b1 = QPushButton("Button1")
   b2 = QPushButton("Button2")

   vbox = QVBoxLayout()
   vbox.addWidget(b1)
   vbox.addStretch()
   vbox.addWidget(b2)
   win.setLayout(vbox)

   win.setWindowTitle("PyQt")
   win.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   window()

输出

上述代码产生以下输出 −

PyQt5 QBoxLayout 类

示例

该示例使用水平盒式布局。 addStretch() 方法在两个按钮对象之间插入了一个可伸缩的空白间隔。因此,当窗口大小调整时,按钮的大小和位置会动态变化。

import sys 
from PyQt5.QtCore import * 
from PyQt5.QtGui import * 
from PyQt5.QtWidgets import *

def window():
   app = QApplication(sys.argv)
   win = QWidget()

   b1 = QPushButton("Button1")
   b2 = QPushButton("Button2")

   hbox = QHBoxLayout()
   hbox.addWidget(b1)
   hbox.addStretch()
   hbox.addWidget(b2)
   win.setLayout(hbox)
   win.setWindowTitle("PyQt")
   win.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   window()

输出

上述代码产生以下输出 –

PyQt5 QBoxLayout 类

示例

此示例演示了布局如何嵌套。这里,两个按钮被添加到垂直盒布局中。然后,一个水平盒布局对象被添加到其中,包括两个按钮和一个可伸缩的空白空间。最后,垂直盒布局对象通过setLayout()方法应用于顶级窗口。

import sys 
from PyQt5.QtCore import * 
from PyQt5.QtGui import * 
from PyQt5.QtWidgets import *

def window():
   app = QApplication(sys.argv)
   win = QWidget()

   b1 = QPushButton("Button1")
   b2 = QPushButton("Button2")

   vbox = QVBoxLayout()
   vbox.addWidget(b1)
   vbox.addStretch()
   vbox.addWidget(b2)
   hbox = QHBoxLayout()

   b3 = QPushButton("Button3")
   b4 = QPushButton("Button4")
   hbox.addWidget(b3)
   hbox.addStretch()
   hbox.addWidget(b4)

   vbox.addStretch()
   vbox.addLayout(hbox)
   win.setLayout(vbox)

   win.setWindowTitle("PyQt")
   win.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   window()

输出

上述代码产生以下输出结果 –

PyQt5 QBoxLayout 类

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程