pyside6 layout
时间: 2025-04-27 13:32:50 浏览: 20
PySide6 的 `Layout` 系统是用于自动管理小部件位置和大小的重要工具之一,它简化了界面设计过程。你可以通过布局类将窗口内的控件按照特定的方式排列,并让它们能够响应窗口尺寸的变化。
### 布局的基本概念
- **QHBoxLayout** 和 **QVBoxLayout**: 水平或垂直地排列子组件。
- **QGridLayout**: 将空间划分为网格形式,在其中放置各种类型的 widget。
- **QFormLayout**: 提供两列结构的形式布局,左边一栏通常用来放标签(提示信息),右边则放置输入框等交互元素。
- **QStackedLayout**: 允许创建堆叠式的小部件集合;一次只能显示其中一个。
当你向一个容器(例如 QWidget 或其他支持添加 children widgets 的对象)应用 Layout 后,该容器会接管所有已加入此 layout 中 child-widgets 的几何形状控制权。这意味着你不再需要手动调整这些组件的位置及大小属性,而是由所选的 layout 类负责处理这一切。
此外,为了更好地管理和组织复杂的用户界面上的不同部分,还可以嵌套使用多种不同类型的 layouts 来构建更复杂、美观的应用程序 UI 结构。
下面是一个简单的例子展示如何在一个主窗口内设置水平和垂直布局:
```python
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QHBoxLayout, QVBoxLayout, QWidget
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
# Create buttons for the demo.
button_top = QPushButton("Top")
button_bottom = QPushButton("Bottom")
# Initialize a vertical box layout.
v_layout = QVBoxLayout()
# Add top and bottom buttons to this layout in order from top down.
v_layout.addWidget(button_top)
v_layout.addWidget(button_bottom)
central_widget = QWidget()
# Set our main window's central widget with above created layout.
self.setCentralWidget(central_widget)
central_widget.setLayout(v_layout)
if __name__ == "__main__":
app = QApplication([])
win = MyWindow()
win.show()
app.exec_()
```
阅读全文
相关推荐


















