QSlider의 최소, 최대 및 현재 선택된 값을 표시 할 수 있습니까? 물론이를 표시하는 라벨을 사용할 수 있습니다,하지만 당신은 두 가지 옵션이 있습니다 QSliderQSlider 최소, 최대 및 현재 값 표시
3
A
답변
9
이러한 가능성이 있어야한다 생각 ..
1) 댓글에서 언급 된 것으로 - 서브 - 클래스
2) QSlider를 QSlider로 추가하고 부모 인으로 추가하려면 QSlider에 eventHandler()를 설치하여 resize 이벤트를 올바른 위치로 잡아서 스크롤 이벤트를 처리하면됩니다. 그러면 레이블을 업데이트 할 수 있습니다. QSlider 상단에
1
멋진 슬라이드를 빠르게 구현했습니다. r의 하위 클래스 qslider를 사용하면 슬라이더 핸들 바로 아래의 현재 값이 툴팁으로 표시됩니다.
헤더
#ifndef FANCYSLIDER_H
#define FANCYSLIDER_H
#include <QSlider>
class FancySlider : public QSlider
{
Q_OBJECT
public:
explicit FancySlider(QWidget *parent = 0);
explicit FancySlider(Qt::Orientation orientation, QWidget *parent = 0);
protected:
virtual void sliderChange(SliderChange change);
};
#endif // FANCYSLIDER_H
CPP
#include "FancySlider.h"
#include <QStyleOptionSlider>
#include <QToolTip>
FancySlider::FancySlider(QWidget * parent)
: QSlider(parent)
{
}
FancySlider::FancySlider(Qt::Orientation orientation, QWidget * parent)
: QSlider(orientation, parent)
{
}
void FancySlider::sliderChange(QAbstractSlider::SliderChange change)
{
QSlider::sliderChange(change);
if (change == QAbstractSlider::SliderValueChange)
{
QStyleOptionSlider opt;
initStyleOption(&opt);
QRect sr = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderHandle, this);
QPoint bottomRightCorner = sr.bottomLeft();
QToolTip::showText(mapToGlobal(QPoint(bottomRightCorner.x(), bottomRightCorner.y())), QString::number(value()), this);
}
}
당신이 그것을 서브 클래스해야합니다 생각합니다. –