【Qt一骚操作】Qt设置滑动条ScrollArea 背景颜色为透明

Qt设置滑动条ScrollArea 背景颜色为透明

需求: 现在在QWidget中文案部分添加了滑动条区域处理,但是滑动条区域又与整个视窗的背景色不协调,由于整个控件背景色为透明,因此需要将滑动条ScrollArea 设置为透明。查询CSDN和百度的方法无果,写的太乱,现将自己的尝试总结如下

1.窗口背景色设置透明方法

setAttribute(Qt::WA_TranslucentBackground, true);

使用条件:Qt窗体设置 透明(可以设置其他背景色)

2.滑动条ScrollArea 背景颜色设置为透明

直接上代码:

    QPalette pa = scrollArea->palette();
    pa.setBrush(QPalette::Window, Qt::transparent);
    scrollArea->setPalette(pa);

其中<1QPalette类相当于对话框或控件的调色板,它管理着控件或窗体的所有颜色信息,每个窗体或控件都包含一个QPalette对象,在显示时按照它的QPalette对象中对各部分各状态下的颜色的描述来进行绘制。

其中<2: QPalette::Window 一定得这么设置,而非常用的Base

在此推荐2篇有用的博客:
Qt: 调色板QPalette类用法详解(附实例、源码)

QPalette类详细使用方法

仔细去理解一下,有很大的收获!

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Python中,使用PyQt库的QScrollArea小部件可以实现滚动功能。以下是使用QScrollArea滑动的一般步骤: 1. 导入必要的模块和类: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QScrollArea, QLabel ``` 2. 创建QApplication实例和主窗口: ```python app = QApplication([]) window = QMainWindow() ``` 3. 创建一个QWidget小部件,并将其设置为主窗口的中央窗口: ```python widget = QWidget() window.setCentralWidget(widget) ``` 4. 创建一个QVBoxLayout布局管理器并将其应用于QWidget小部件: ```python layout = QVBoxLayout(widget) ``` 5. 创建一个QScrollArea小部件并将其添加到QVBoxLayout中: ```python scroll_area = QScrollArea() layout.addWidget(scroll_area) ``` 6. 创建一个包含内容的QWidget小部件,并设置其layout属性为QVBoxLayout。如果内容过长,以致需要滚动时,可以设置QWidget的大小策略为QSizePolicy.Expanding: ```python content_widget = QWidget() content_layout = QVBoxLayout(content_widget) content_widget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) # 将内容添加到content_layout中 label1 = QLabel("Content 1") content_layout.addWidget(label1) label2 = QLabel("Content 2") content_layout.addWidget(label2) # 其他内容... # 设置content_widget为scroll_area的widget scroll_area.setWidget(content_widget) ``` 7. 将QWidget的大小策略设置为QSizePolicy.Expanding,并显示主窗口: ```python widget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) window.show() ``` 这样,当内容超过QScrollArea小部件大小时,将可以使用滚动滑动显示内容。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Monster_H777

我直说吧:你的奖励我的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值