Qt自定义Slider,在滑块上方显示当前数值
效果如下:
思路:新建自定义Slider类,继承QSlider类;由于要在滑块上方显示当前值,需要New一个QLabel对象来进行显示;有了显示后需要计算出当前滑块的位置来对QLabel来进行移动处理,保证显示值在滑块上方位置,这里就需要重写鼠标点击、释放、移动事件,在上述三个事件中对QLabel位置进行更新;
相关部分代码:
CCustomSlider::CCustomSlider(QWidget *parent) : QSlider(parent)
{
//这里创建一个QLabel对象,并对其进行相关样式设置;样式可以根据具体需求进行具体的设置
m_pDisplayLabel = new QLabel(this);
m_pDisplayLabel->setFixedSize(QSize(40, 20));
m_pDisplayLabel->setAlignment(Qt::AlignCenter);
m_pDisplayLabel->setObjectName("displayLabel");
m_pDisplayLabel->setStyleSheet("QLabel#displayLabel{color:#347df7;font-size:24px;}"
"QLabel#displayLabel:disabled{color:#282A32;}");
}
void CCustomSlider::mousePressEvent(QMouseEvent *