• 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;}");

  • 相关阅读:
    Flink Hudi DataStream API代码示例
    医疗健康产品展:联影医疗
    Dear ImGui的UE5.3集成实践
    半导体动态杂谈
    C++基础入门
    图像处理学习笔记-09-形态学图像处理
    Docker常见用法
    【k8s】YAML语言基础
    【rust简单工具理解】
    .Net Core中Host的作用和用法
  • 原文地址:https://blog.csdn.net/QIUCHUNHUIGE/article/details/126404246