Qt软件开发文档12---scrollBar样式

绘制tableView时 往往需要自定义scrollBar的样式

 QTableView *table = new QTableView(this);
    table->setGeometry(20,20,600,500);


    QString scrollStyle(
                //整体布局
                "QScrollBar:vertical {"
                "border-left: 1px solid rgb(99, 174, 236);"
                "border-top:1px solid rgb(99, 174, 236);"
                "border-bottom:1px solid rgb(99, 174, 236);"
                "background: rgb(214, 239, 252);"
                "width: 15px;"
                "margin: 0px 0 0px 0;"
                "}"
                //拉的手柄布局
                "QScrollBar::handle:vertical {"
                "background: white;"
                "border-top: 1px solid rgb(99, 174, 236);"
                "border-bottom: 1px solid rgb(99, 174, 236);"
                "min-height: 20px;"
                "}"
                //两侧的箭头布局
                "QScrollBar::add-line:vertical {"
                "border: 1px solid rgb(99, 174, 236);"
                "}"
                "QScrollBar::sub-line:vertical {"
                "border: 1px solid rgb(99, 174, 236);"
                "}"

                "QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical {"
                "border: 1px solid rgb(99, 174, 236);;"
                "width: 20px;"
                "height: 20px;"
                "}"
                //点击ScrollBar 显示的背景色
                "QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {"
                "border: 0px solid rgb(44, 113, 177);"
                "background: rgb(214, 239, 252);"
                "}"


                "QScrollBar:horizontal  {"
                "border-top: 1px solid rgb(99, 174, 236);"
                "border-left: 1px solid rgb(99, 174, 236);"
                "border-right: 1px solid rgb(99, 174, 236);"
                "background: rgb(213,239,252);"
                "height: 15px;"
                "margin: 0px 0 0px 0;"
                "}"
                "QScrollBar::handle:horizontal  {"
                "background: white;"
                "border-left: 1px solid rgb(99, 174, 236);"
                "border-right: 1px solid rgb(99, 174, 236);"
                "min-width: 20px;"
                "}"
                "QScrollBar::add-line:horizontal  {"
                "border: 1px solid rgb(99, 174, 236);"
                "}"
                "QScrollBar::sub-line:horizontal  {"
                "border: none;"
                "}"
                "QScrollBar::up-arrow:horizontal , QScrollBar::down-arrow:horizontal  {"
                "border: 1px solid rgb(44, 113, 177);"
                "width: 20px;"
                "height: 20px;"
                "}"

                "QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {"
                "border: 0px solid rgb(44, 113, 177);"
                "background: rgb(214, 239, 252);"
                "}"
                );
    QString scSty = scrollStyle;
    QStandardItemModel *model = new QStandardItemModel(table);
    table->setModel(model);
    model->insertColumns(0,20);
    model->insertRows(0,200);
    //布局时需要注意设置style的顺序   顺序不同  造成的结果也不尽相同
    this->setStyleSheet(scSty);
    table->setStyleSheet("selection-background-color: rgb(44, 112, 177);"
                         "border:1px solid rgb(97, 172, 240); background-color: white;");
    table->setSelectionBehavior(QAbstractItemView::SelectRows);
    table->setEditTriggers(QAbstractItemView::NoEditTriggers);
    table->setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOn);
    table->setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOn);
    table->show();

这里写图片描述

两者样式写反时 结果呢?

    table->setStyleSheet("selection-background-color: rgb(44, 112, 177);"
                         "border:1px solid rgb(97, 172, 240); background-color: white;");
 this->setStyleSheet(scSty);

这里写图片描述
所以说 写布局时 需要注意样式 布局的先后顺序 才能得出想要的结果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值