zoukankan      html  css  js  c++  java
  • 使QScrollArea的背景透明,并且不影响子控件

    使QScrollArea的背景透明,乍看很easy,其实却是一个目前百度上百不出来的问题;

    最容易想到的,用qss:

    scrollArea->setStyleSheet("background-color:transparent;");

    但是这样会使scrollArea所包含的所有子控件的背景也变成透明,大大不妥啊。。。

    然后:

    scrollArea->setStyleSheet("QScrollArea {background-color:transparent;}")

    这个居然无效,大跌眼镜。。。

    然后百度,有人问,没人答,再谷歌,靠,被墙了。。。

    那么,看QT源码吧,找到QScrollArea他爹QAbstractScrollArea。。。

    有发现,QWidget *viewport()。。。就是这个挡路的子控件惹的事了,

    挡路的家伙,需要修理。。。这个是public的,再对这个设置一下qss就行了

    所以,最后的解决办法是2步,按顺序来:

    1:scrollArea->setStyleSheet("QScrollArea {background-color:transparent;}")

    2:scrollArea->viewport()->setStyleSheet("background-color:transparent;");

     好了,全透了,清爽了。

  • 相关阅读:
    django 自定义用户身份验证
    登录验证算法
    Scrapy
    爬虫性能相关
    Beautifulsoup模块
    selenium模块
    Cookie&Session
    Django Admin 本质
    JavaScript自执行函数和jquery扩展方法
    JS作用域与词法分析
  • 原文地址:https://www.cnblogs.com/falqs/p/3805003.html
Copyright © 2011-2022 走看看