Qt 自定义 滚动条 样式
小编:啊南 414阅读 2021.01.18
Qt设置样式的方式有两种,一种直接在程序中写,适用于样式不多的情况;另一种,写入到文件中,适用用样式较大且需要提供换肤功能的情况。
1.写入到文件中,新建个xx.qss,然后复制一下内容
// 设置垂直滚动条基本样式 QScrollBar:vertical { width:8px; background:rgba(0,0,0,0%); margin:0px,0px,0px,0px; padding-top:9px; // 留出9px给上面和下面的箭头 padding-bottom:9px; } QScrollBar::handle:vertical { width:8px; background:rgba(0,0,0,25%); border-radius:4px; // 滚动条两端变成椭圆 min-height:20; } QScrollBar::handle:vertical:hover { width:8px; background:rgba(0,0,0,50%); // 鼠标放到滚动条上的时候,颜色变深 border-radius:4px; min-height:20; } QScrollBar::add-line:vertical // 这个应该是设置下箭头的,3.png就是箭头 { height:9px;width:8px; border-image:url(:/images/a/3.png); subcontrol-position:bottom; } QScrollBar::sub-line:vertical // 设置上箭头 { height:9px;width:8px; border-image:url(:/images/a/1.png); subcontrol-position:top; } QScrollBar::add-line:vertical:hover // 当鼠标放到下箭头上的时候 { height:9px;width:8px; border-image:url(:/images/a/4.png); subcontrol-position:bottom; } QScrollBar::sub-line:vertical:hover // 当鼠标放到下箭头上的时候 { height:9px;width:8px; border-image:url(:/images/a/2.png); subcontrol-position:top; } QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical // 当滚动条滚动的时候,上面的部分和下面的部分 { background:rgba(0,0,0,10%); border-radius:4px; }
?接着在程序中读取文件
QFile file(":/scrollbar.qss"); file.open(QFile::ReadOnly); listWidget->verticalScrollBar()->setStyleSheet(file.readAll());
?2.直接在程序中设置,简单
listWidget->verticalScrollBar()->setStyleSheet("QScrollBar:vertical" "{" "width:8px;" "background:rgba(0,0,0,0%);" "margin:0px,0px,0px,0px;" "padding-top:9px;" "padding-bottom:9px;" "}" "QScrollBar::handle:vertical" "{" "width:8px;" "background:rgba(0,0,0,25%);" " border-radius:4px;" "min-height:20;" "}" "QScrollBar::handle:vertical:hover" "{" "width:8px;" "background:rgba(0,0,0,50%);" " border-radius:4px;" "min-height:20;" "}" "QScrollBar::add-line:vertical" "{" "height:9px;width:8px;" "border-image:url(:/images/a/3.png);" "subcontrol-position:bottom;" "}" "QScrollBar::sub-line:vertical" "{" "height:9px;width:8px;" "border-image:url(:/images/a/1.png);" "subcontrol-position:top;" "}" "QScrollBar::add-line:vertical:hover" "{" "height:9px;width:8px;" "border-image:url(:/images/a/4.png);" "subcontrol-position:bottom;" "}" "QScrollBar::sub-line:vertical:hover" "{" "height:9px;width:8px;" "border-image:url(:/images/a/2.png);" "subcontrol-position:top;" "}" "QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical" "{" "background:rgba(0,0,0,10%);" "border-radius:4px;" "}" );
滚动条有两种,水平的和垂直的,我这里面只设置了垂直的,水平的其实差不多,只需要把vertical 换成horizontal。
相关推荐
- Qt加载XPM图像 XPM是一种基于ASCII编码的图像格式,一般用于创建图标。由于它是ASCII编码,很方便地在代码中使用。 Qt的QPixmap类支持XPM格式,原型如下:QPixmap::QPixmap(const char *const [] xpm)摘取Qt源码中的"严重警告"XPM图标:static const char* const c…
- 3DMAX提示和技巧 本主题标识使用 Civil View 的一些重要提示和技巧。常规使用屏幕分辨率至少为 1280x1024 的 Civil View。低于此分辨率时,一些面板将占用过多屏幕空间。 将视口设置为线框显示以达到最佳性能。 要尽可能简化用户界面,请在单个视口中工作并关闭 3ds Max 命令面…