如何在PyQt5中将QScrollBar滚动条的上下箭头修改为三角样式
你当前箭头显示为方形是因为直接为箭头控件设置了纯色背景,可通过QSS的border透明填充技巧实现正/倒三角形效果,无需引入外部图片,修改方法如下:
- 移除原有合并编写的上下箭头公共样式规则
- 分别编写上箭头、下箭头的独立样式,通过设置不同方向的边框显示颜色、其余方向边框设为透明实现三角形效果
修改后的完整QSS代码如下:
QScrollBar:vertical { background: rgb(220,220,220); width: 15px; margin: 22px 0 22px 0; } QScrollBar::handle:vertical { background: rgb(169,169,169); min-height: 10px; } QScrollBar::add-line:vertical { border: 0px solid grey; background: rgb(220,220,220); height: 20px; subcontrol-position: bottom; subcontrol-origin: margin; } QScrollBar::sub-line:vertical { border: 0px solid red; background: rgb(220,220,220); height: 20px; subcontrol-position: top; subcontrol-origin: margin; } /* 顶部向上正三角形 */ QScrollBar::up-arrow:vertical { width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-bottom: 5px solid black; } /* 底部向下倒三角形 */ QScrollBar::down-arrow:vertical { width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid black; }
如果需要调整箭头尺寸,同步修改border对应的像素值即可,数值越大三角形越大。
内容的提问来源于stack exchange,提问作者tckraomuqnt
相关产品推荐
相关产品推荐

