Qt自定义带游标的slider,在滑块正上方显示当前值
首先自定义QSlider的子类MyCustomSlider,如下所示。 mycustomslider.h
ifndef MYCUSTOMSLIDER_H
define MYCUSTOMSLIDER_H
include “QSlider”
include “QLabel”
include “QMouseEvent”
class MyCustomSlider : public QSlider
{
public:
MyCustomSlider(QWidget *parent=0);
~MyCustomSlider();
protected:
virtual void mousePressEvent(QMouseEvent event);
virtual void mouseReleaseEvent(QMouseEvent event);
virtual void mouseMoveEvent(QMouseEvent *event);
private:
QLabel* m_displayLabel;
};
endif // MYCUSTOMSLIDER_H
mycustomslider.cpp
include "mycustomslider.h"
include “QPalette”
MyCustomSlider::MyCustomSlider(QWidget *parent):QSlider(parent)
{
m_displayLabel=new QLabel(this);
m_displayLabel->setFixedSize(QSize(20,20));
//设置游标背景为白色
m_displayLabel->setAutoFillBackground(true);
QPalette palette;
palette.setColor(QPalette::Background, Qt::white);
m_displayLabel->setPalette(palette);
m_displayLabel->setAlignment(Qt::AlignCenter);
m_displayLabel->setVisible(false);
m_displayLabel->move(0,3);
}
MyCustomSlider::~MyCustomSlider()
{
}
void MyCustomSlider::mousePressEvent(QMouseEvent *event)
{
if(!m_displayLabel->isVisible())
{
m_displayLabel->setVisible(true);
m_displayLabel->setText(QString::number(this->value()));
}
QSlider::mousePressEvent(event);
}
void MyCustomSlider::mouseReleaseEvent(QMouseEvent *event)
{
if(m_displayLabel->isVisible())
{
m_displayLabel->setVisible(false);
}
QSlider::mouseReleaseEvent(event);
}
void MyCustomSlider::mouseMoveEvent(QMouseEvent event)
{
m_displayLabel->setText(QString::number(this->value()));
m_displayLabel->move((this->width()-m_displayLabel->width())this->value()/(this->maximum()-this->minimum()),3);
QSlider::mouseMoveEvent(event);
}
- 分享
- 举报

-
浏览量:428次2020-05-06 15:52:54
-
浏览量:361次2020-08-03 12:02:37
-
浏览量:366次2020-08-03 12:01:28
-
浏览量:455次2020-08-03 13:33:48
-
浏览量:509次2020-03-05 10:20:13
-
2020-02-19 14:15:02
-
2020-02-18 13:28:40
-
浏览量:365次2020-04-01 10:28:34
-
浏览量:371次2020-01-10 11:21:54
-
浏览量:419次2020-04-08 10:32:05
-
浏览量:458次2020-04-21 14:15:40
-
浏览量:863次2017-11-28 12:33:29
-
浏览量:628次2020-04-08 14:56:33
-
浏览量:454次2019-12-17 09:31:42
-
浏览量:415次2018-04-23 15:16:57
-
浏览量:1344次2018-11-13 10:03:09
-
浏览量:887次2018-05-07 20:47:52
-
浏览量:435次2018-06-07 18:29:06
-
浏览量:271次2020-03-30 10:31:32
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
big_anana







举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明