pyqt 滚动条 美化_Pyqt5 关于流式布局和滚动条的综合使用示例代码

本文介绍了如何在PyQt5中实现流式布局和滚动条的结合,通过创建QScrollArea并设置其WidgetResizable属性,配合FlowLayout自定义布局,展示带有滚动条的图片流式布局界面。代码示例详细解释了流式布局的添加和滚动条的设置方法。
摘要由CSDN通过智能技术生成

流式布局

所谓流式布局指的是容器中的元素像流水一样,是可以浮动的,当元素一行或者一列占满的时候,它会自动流入到下一行或者下一列。

pyqt5流式布局

pyqt中采用流式布局的方法原理是,通过contentsMargins获取到子元素距离布局的上下左右宽度,然后我们将所有子元素进行遍历,如果它加上边距可以在一行放入的话,那么就放在一行内,如果不能,就放入到下一行,具体代码如下:

m = self.contentsMargins()

effective_rect = rect.adjusted(+m.left(), +m.top(), -m.right(), -m.bottom())

x = effective_rect.x()

y = effective_rect.y()

line_height = 0

for item in self._item_list:

wid = item.widget()

space_x = self.spacing()

space_y = self.spacing()

if wid is not None:

space_x += wid.style().layoutSpacing(

QSizePolicy.PushButton, QSizePolicy.PushButton, Qt.Horizontal)

space_y += wid.style().layoutSpacing(

QSizePolicy.PushButton, QSizePolicy.PushButton, Qt.Vertical)

next_x = x + item.sizeHint().width() + space_x

if next_x - space_x > effective_rect.right() and line_height > 0:

x = effective_rect.x()

y = y + line_height + space_y

next_x = x + item.sizeHint().width() + space_x

line_height = 0

if not test_only:

item.setGeometry(QRect(QPoint(x, y), item.sizeHint()))

x = next_x

line_height = max(line_height, item.sizeHint().height())

滚动条的设置

pyqt中有专门的滚动条组件QScrollBar,这个组件需要配合其他组件使用,我们这里使用QScrollArea这个组件进行滚动条的设置。

滚动条的使用方法

首先,我们需要声明QScrollArea

然后,我们需要设置QScroll

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值