PySide6————QWidget的sizePolicy属性解析

typora-copy-images-to: images

sizePolicy属性由四个值组成,分别是水平策略、垂直策略、水平伸展和垂直伸展。

可选的模式有很多,常用的有:

Fixed

Expanding

Preferred

Minimum(Maxmum)

sizeHint(期望尺寸):每种控件都有一个期望尺寸,即这个控件的建议尺寸,即默认尺寸。绝大多是的控件的默认尺寸是只读的,不可更改。对于不同的部件,默认拥有不同的sizeHint;同一部件的sizeHint也有可能不同,大小随着部件内容的变化而变化。

实践测试

创建一个QWidget窗口,加入一个QListView,设置QWidget窗口布局为水平布局

此时QListView 充满整个布局,因为它的水平策略和垂直策略为expanding。

往右侧放入一个QFrame,因为它的水平策略和垂直策略为Preferred,故被挤到边上。

将QFrame的水平策略和垂直策略改为expanding,此时两个子控件都为expanding,因而平分窗口

将QFrame的水平伸展设置为 2, QListView 的水平伸展设置为 1

此时 QFrame 占据窗口水平方向的 2/3

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PySide6 中,可以通过将 QWidget 添加到 QScrollArea 中来实现滚动区域。下面是一个简单的示例代码: ```python from PySide6.QtWidgets import QApplication, QMainWindow, QScrollArea, QWidget, QVBoxLayout app = QApplication([]) # 创建主窗口 window = QMainWindow() # 创建滚动区域和内容容器 scroll_area = QScrollArea() content_widget = QWidget() # 创建内容布局 content_layout = QVBoxLayout() content_layout.setContentsMargins(0, 0, 0, 0) # 创建并添加子部件到内容布局中 for i in range(20): label = QLabel(f"Label {i+1}") content_layout.addWidget(label) # 将内容布局设置给内容容器 content_widget.setLayout(content_layout) # 设置内容容器为滚动区域的 widget scroll_area.setWidget(content_widget) # 将滚动区域设置为主窗口的中心部件 window.setCentralWidget(scroll_area) # 显示主窗口 window.show() app.exec() ``` 解释: 1. 首先,我们创建了一个 `QMainWindow` 对象作为主窗口。 2. 然后,我们创建了一个 `QScrollArea` 对象作为滚动区域,并创建了一个 `QWidget` 对象作为内容容器。 3. 接下来,我们创建了一个 `QVBoxLayout` 对象作为内容布局,并将其设置为内容容器的布局管理器。 4. 然后,我们使用一个循环创建一些 `QLabel` 对象,并将它们添加到内容布局中。 5. 最后,我们将内容布局设置给内容容器,并将内容容器设置为滚动区域的 widget,最后将滚动区域设置为主窗口的中心部件。 相关问题: 1. 如何设置滚动区域的滚动条策略? 2. 如何处理滚动区域中的鼠标滚轮事件? 3. 如何实现滚动区域自动滚动到底部或顶部? 4. 如何在滚动区域中添加自定义的小部件? 5. 如何自定义滚动区域的外观样式?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值