PyQt5 – QBoxLayout类
QBoxLayout类垂直或水平地排列小部件。它的派生类是QVBoxLayout(用于垂直排列部件)和QHBoxLayout(用于水平排列部件)。下表显示了QBoxLayout类的重要方法。
Sr.No. | 方法和描述 |
---|---|
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()
输出
上述代码产生了以下输出 —
示例
这个例子使用了水平盒式布局。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()
输出
上述代码产生了以下输出 —