警告
本节包含从 C++ 自动转换为 Python 的代码片段,可能包含错误。
部件教程 - 使用布局#
通常,子部件是通过布局对象在窗口内排列,而不是通过显式指定位置和大小。这里,我们构建一个标签和行编辑器部件,我们希望它们并排排列。
from PySide6 import QtWidgets if __name__ == "__main__": app = QApplication([]) window = QWidget() label = QLabel(QApplication.translate("windowlayout", "Name:")) lineEdit = QLineEdit() layout = QHBoxLayout() layout.addWidget(label) layout.addWidget(lineEdit) window.setLayout(layout) window.setWindowTitle( QApplication.translate("windowlayout", "Window layout")) window.show() sys.exit(app.exec())
我们构建的布局对象使用 addWidget()
函数管理传入其内的部件的位置和大小。布局本身通过调用 setLayout()
(PySide6.QtWidgets.QWidget.setLayout)传递给窗口。布局本身通过其对部件(和其他布局)的效果才能可见。
在上面的例子中,每个部件的所有权并不立即清晰。由于我们构造的部件和布局没有父对象,我们预计会看到一个空的窗口和两个独立的窗口,一个包含标签,另一个包含行编辑器。但是,当我们告诉布局管理标签和行编辑器并设置窗口布局时,这两个部件和布局本身都会被“重新父化”,成为窗口的子元素。