可以通過修改控件的樣式表來達到顯示自定義的滑動條。
效果圖:

完整代碼:
1 ui->hsPosition->setStyleSheet(tr("QSlider::groove:horizontal{ \ 2 border-radius:5px;\ 3 height:10px;\ 4 left:5px;\ 5 right:5px;\ 6 border-image:url(:/slider_bg.png);\ 7 }\ 8 QSlider::handle:horizontal{\ 9 border-radius:10px;\ 10 width:20px;\ 11 height:20px;\ 12 margin-top:-5px;\ 13 margin-bottom:-5px;\ 14 margin-right:-5px;\ 15 margin-left:-5px;\ 16 border-image:url(:/5.png);\ 17 }\ 18 QSlider::sub-page:horizontal{border-radius:5px;border-image:url(:/slider.png);}"));
代碼單步分析
1 QSlider::groove:horizontal{ \ //groove代表未划過的、horizontal代表橫向條與之對應的是縱向vercital 2 border-radius:5px;\ //圓角化 3 height:10px;\ //設定高度 4 left:5px;\ //設定左邊界 5 right:5px;\ //設定右邊界 6 border-image:url(:/slider_bg.png);\ //設置顯示的圖片 7 }\
1 QSlider::handle:horizontal{\ //handle代表滑動塊 2 border-radius:10px;\ //圓角化 3 width:20px;\ //設置寬度 4 height:20px;\ //設置高度 5 margin-top:-5px;\ //設置頁面頂邊距 6 margin-bottom:-5px;\ //設置頁面底邊距 7 margin-right:-5px;\ //設置頁面右邊距 8 margin-left:-5px;\ //設置頁面左邊距 9 border-image:url(:/5.png);\ //設置顯示的圖片 10 }\
1 QSlider::sub-page:horizontal{\ //sub-page代表已經划過的區域 2 border-radius:5px;\ //圓角化 3 border-image:url(:/slider.png);}")); //設置顯示的圖片
擴:https://blog.csdn.net/sinan1995/article/details/80080148
