当前位置: 首页 > 文档资料 > PyQt 中文教程 >

QBoxLayout

优质
小牛编辑
132浏览
2023-12-01

QBoxLayout类垂直或水平排列小部件。 它的派生类是QVBoxLayout (用于垂直排列小部件)和QHBoxLayout (用于水平排列小部件)。 下表显示了QBoxLayout类的重要方法 -

Sr.No.方法和描述
1

addWidget()

将小部件添加到BoxLayout

2

addStretch()

创建空的可伸缩盒子

3

addLayout()

添加另一个嵌套布局

例子1 (Example 1)

这里在垂直框布局中添加了两个按钮。 通过addStretch()方法在它们之间添加可伸展的空白空间。 因此,如果调整顶层窗口的大小,则按钮的位置会自动重新定位。

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui 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()

上面的代码产生以下输出 -

例1

例子2 (Example 2)

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

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui 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()

上面的代码产生以下输出 -

例题

例子3 (Example 3)

此示例显示了如何嵌套布局。 这里,垂直框布局中添加了两个按钮。 然后,向其添加具有两个按钮和可伸展空白空间的水平框布局对象。 最后,垂直框布局对象通过setLayout()方法应用于顶级窗口。

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui 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()

上面的代码产生以下输出 -

示例3