• Qt QTextEdit 设置 QScrollBar 样式表不生效解决方案


    在UI里面引用QTextEdit控件,在对其进行样式设计的时候,通常也会对其滚动条(
    horizontalScrollBar、verticalScrollBar) 进行样式设计。

    例如我们对QTextEdit 的垂直滚动条进行样式设计,样式表会这样写:

    1. QTextEdit#textEdit
    2. {
    3. background:rgba(0,0,0,0.1);
    4. color:rgba(255,255,255,0.8);
    5. border-radius:2px;
    6. border:none;
    7. font-size:14px;
    8. font-family:"微软雅黑";
    9. }
    10. QScrollBar:vertical
    11. {
    12. border: none;
    13. background: transparent;
    14. width: 6px;
    15. }
    16. QScrollBar::handle:vertical
    17. {
    18. background-color: rgba(255,255,255,1);
    19. min-height: 30px;
    20. border-radius:3px;
    21. width: 6px;
    22. }
    23. QScrollBar::add-line:vertical
    24. {
    25. border: none;
    26. height: 0px;
    27. }
    28. QScrollBar::sub-line:vertical
    29. {
    30. border: none;
    31. height: 0px;
    32. }
    33. QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical
    34. {
    35. background:transparent;
    36. border-radius:3px;
    37. }

    在Qt Designer 里面看是正常的, 如图:

    但是当运行程序(Ctrl + R)时,样式表就没有生效,如图:

    ============================ 解决方案=================================

     方案1:在类的构造函数里对滚动条进行polish抛光操作。

    1. ReadingTimeSettingDialog::ReadingTimeSettingDialog(QWidget *parent) :
    2. QWidget(parent),
    3. ui(new Ui::ReadingTimeSettingDialog)
    4. {
    5. ui->setupUi(this);
    6. ui->textEdit->verticalScrollBar()->style()->polish(ui->textEdit->verticalScrollBar());
    7. }

    方案2:

            (1)将QTextEdit 的原有滚动条隐藏,设置滚动条策略未 ScrollBarAlwaysOff 

            (2) 添加新控件Vertical Scroll Bar放置在QTextEdit的左侧 

     

      (3) 设置verticalScrollBar的样式表

      (4)构造函数里面设置verticalScrollBar为QTextEdit的滚动条

    1. ReadingTimeSettingDialog::ReadingTimeSettingDialog(QWidget *parent) :
    2. QWidget(parent),
    3. ui(new Ui::ReadingTimeSettingDialog)
    4. {
    5. ui->setupUi(this);
    6. ui->textEdit->setVerticalScrollBar(ui->verticalScrollBar);
    7. }

  • 相关阅读:
    BOM体系学习
    河北科技大学计算机考研资料汇总
    Gem5 for Ubuntu20.04
    02 使用jenkins实现K8s持续集成
    从零开始搭建第一个django项目
    ROS的调试经验
    C++ 类、对象、模板相关选择题、填空题
    Babel AST代码转换、生成
    【速通指南】《信息资源管理》信息系统资源管理,第3章
    Spring Cloud Gateway实战WebFlux解析请求体及抛出指定错误代码和信息
  • 原文地址:https://blog.csdn.net/xiezhongyuan07/article/details/125540466