• QT scrollArea控件背景透明,但不影响子控件的方法


    网上清一色的使用这两句,但我使用样式表并没有解决问题。反而被误导了,使用这种“广为流传”的方法会让scrollArea中的子控件背景也变成透明的。

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

    那么正确的方式如下:

    ui.scrollArea->viewport()->setStyleSheet(".QWidget{background-color:transparent;}");

    类选择器
    格式
    . 类名 { 属性 : ; }
    这里的类名与类型选择器中的类名一样 , 不同的是 , 类选择器的类名前面有一个 ( . ), 这种
    选择器只会匹配该类的所有对象 , 而不会匹配其派生类的对象 .
    .QPushButton {
    color: blue ;
    }
    一般用法
    类选择器提供了一种匹配所有该类的对象但不会匹配派生类的方法 , 通常用来特例化拥有
    派生类的类对象 , 但不仅限于此 . 例如在在我的应用程序中 , 我用 QFrame 来作为容器 widget,
    此时我想对它设置一些样式 , 但又不想影响它的子类对象 (QLabel, QAbstractScrollArea 等等 ),
    那么我可以使用类选择器给所有的 QFrame 设置相同的样式 . 例如 :
    .QFrame {
    padding: 15px 25px ;
    }
    拓展说明:

    很多控件都带有viewport,比如QTextEdit/QTableWidget/QScrollArea,有时候对这些控件直接处理的时候发现不起作用,需要对其viewport()设置才行,比如设置滚动条区域背景透明,需要使用scrollArea->viewport()->setStyleSheet("background-color:transparent;");而不是scrollArea->setStyleSheet("QScrollArea{background-color:transparent;}");

  • 相关阅读:
    Java基础学习笔记-4
    Mybatis源码的理解
    第16章-cpp string类和标准模板库
    spring-boot-freemrak+rapid-实现代码生成器
    openGauss通过VIP实现的故障转移
    计算机网络_04_传输层
    jdk版本与class文件格式major版本对应关系
    迭代器、可迭代对象、生成器、生成器对象
    Python使用Beautiful Soup及解析html获取元素并提取内容值
    python数据容器
  • 原文地址:https://blog.csdn.net/QIUCHUNHUIGE/article/details/126404246