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

来源:互联网 发布:关键词优化方案 编辑:程序博客网 时间:2024/06/05 04:34

绘制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 0
原创粉丝点击