QT qss 自定义QSlider滑动条,QSlider滑块圆形,圆形滑块边框阴影

最近研究最新版的360安全卫士,并仿照去实现,其中在换肤模块中有一个调节透明度的滑动条,包括滑块是圆形的,已经滑动的区域是绿色的,未滑动的区域是灰白色,使用纯qss实现,阴影实现

1、代码如下:

// 滑动条
    m_pSlider = new QSlider(this);
    m_pSlider->setOrientation(Qt::Horizontal);
    m_pSlider->setMinimum(0);
    m_pSlider->setMaximum(255);
    m_pSlider->setSingleStep(10);
    m_pSlider->setGeometry(30,this->height()-28,200,25);
    m_pSlider->setStyleSheet("QSlider::handle:horizontal{width:24px;background-color:rgb(255,255,255);margin:-11px 0px -11px 0px;border-radius:12px;}"
                             "QSlider::groove:horizontal{height:2px;background-color:rgb(219,219,219);}"
                             "QSlider::add-page:horizontal{background-color:rgb(219,219,219);}"
                             "QSlider::sub-page:horizontal{background-color:rgb(26,217,110);}");
    QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect;
    effect->setOffset(4,4);
    effect->setColor(QColor(0,0,0,50));
    effect->setBlurRadius(10);
    m_pSlider->setGraphicsEffect(effect);

2、效果如下:

你可能感兴趣的:(qt之360安全卫士12实现)