QScrollArea滚动条的出现

有时在UI界面直接拖出一个QScrollArea控件时,会发现不管往里边放多大的子控件,滚动条都不会出现,哪怕使用setFixedSize()手动固定死了子控件大小滚动条也不会出现。

1.去帮助手册看QScrollArea类的介绍:

QScrollArea类被描述为是显示frame内子widget的内容,重点是子widget这个容器,如果子widget超过了frame的大小滚动条才会出现。而子widget可以使用QScrollArea::setWidget(QWidget *widget)来指定,使用QWidget *QScrollArea::widget() const来获取QScrollArea内部的子widget。

2.再回到UI界面中看,手动拖出来的QScrollArea会自动生成一个子widget:

如果改变了这个子widget的大小,滚动条就可以出现:

3.还有在代码中使用resize()去调整子widget的大小时,滚动条此时也不会出现,后来看到QScrollArea类中有个widgetResizable属性,它决定着滚动区域是否应调整子widget的大小,默认为false(但在UI界面中拖出来已经为true)。如果设置为true,子widget的resize()不会生效,设为false才会生效。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QScrollArea是一个带有滚动条的窗口部件,它可以包含其他QWidget部件作为其子部件,以便在视图中显示可滚动的内容。要自定义QScrollArea滚动条样式,可以使用QSS(Qt样式表)。 以下是一个例子,可以设置QScrollArea的垂直滚动条的样式为红色: ```python scroll = QScrollArea() scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) scroll.setStyleSheet("QScrollBar:vertical {border: none; background: none; width: 10px; margin: 0px 0px 0px 0px;} \ QScrollBar::handle:vertical {background: red; border-radius: 5px; min-height: 20px;} \ QScrollBar::add-line:vertical {background: none;} \ QScrollBar::sub-line:vertical {background: none;}") ``` 在上面的代码中,我们首先创建了一个QScrollArea对象,然后设置了垂直滚动条的策略为始终显示。接下来,我们使用setStyleSheet()方法设置了QSS样式表,其中包括以下几个部分: - QScrollBar:vertical:选择垂直滚动条并设置其属性。 - border:none:去掉边框。 - background:none:去掉背景色。 - width:10px:设置滚动条的宽度为10像素。 - margin:0px 0px 0px 0px:设置外边距为0像素。 - QScrollBar::handle:vertical:选择滚动条的滑块并设置其属性。 - background:red:设置滑块的背景色为红色。 - border-radius:5px:设置滑块的边角半径为5像素。 - min-height:20px:设置滑块的最小高度为20像素。 - QScrollBar::add-line:vertical:选择滚动条的加号按钮并设置其属性。 - background:none:去掉加号按钮的背景色。 - QScrollBar::sub-line:vertical:选择滚动条的减号按钮并设置其属性。 - background:none:去掉减号按钮的背景色。 这样,我们就可以自定义QScrollArea滚动条样式了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值