PyQt5 - QBoxLayout 类
-
简述
QBoxLayout类垂直或水平排列小部件。它的派生类是QVBoxLayout(用于垂直排列小部件)和QHBoxLayout(用于水平排列小部件)。下表显示了 QBoxLayout 类的重要方法 -序号 方法和描述 1 addWidget()将小部件添加到 BoxLayout2 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()
-
输出
上面的代码产生以下输出 - -
例子
此示例使用水平框布局。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()
-
输出
上面的代码产生以下输出 - -
例子
此示例显示如何嵌套布局。在这里,两个按钮被添加到垂直框布局中。然后,添加了一个带有两个按钮和一个可拉伸空白区域的水平框布局对象。最后,通过 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()
-
输出
上面的代码产生以下输出 -