add property to change track width
This commit is contained in:
parent
be270caa5a
commit
e17b6367b1
|
@ -65,6 +65,21 @@ QColor Slider::trackColor() const
|
|||
return d->trackColor;
|
||||
}
|
||||
|
||||
void Slider::setTrackWidth(int width)
|
||||
{
|
||||
Q_D(Slider);
|
||||
|
||||
d->trackWidth = width;
|
||||
update();
|
||||
}
|
||||
|
||||
int Slider::trackWidth() const
|
||||
{
|
||||
Q_D(const Slider);
|
||||
|
||||
return d->trackWidth;
|
||||
}
|
||||
|
||||
void Slider::sliderChange(SliderChange change)
|
||||
{
|
||||
Q_D(Slider);
|
||||
|
|
|
@ -11,6 +11,7 @@ class Slider : public QAbstractSlider
|
|||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(QColor trackColor WRITE setTrackColor READ trackColor)
|
||||
Q_PROPERTY(int trackWidth WRITE setTrackWidth READ trackWidth)
|
||||
|
||||
public:
|
||||
explicit Slider(QWidget *parent = 0);
|
||||
|
@ -26,6 +27,9 @@ public:
|
|||
void setTrackColor(const QColor &color);
|
||||
QColor trackColor() const;
|
||||
|
||||
void setTrackWidth(int width);
|
||||
int trackWidth() const;
|
||||
|
||||
signals:
|
||||
void changedToMinimum();
|
||||
void changedFromMinimum();
|
||||
|
|
|
@ -38,6 +38,7 @@ public:
|
|||
bool pageStepMode;
|
||||
int stepTo;
|
||||
int oldValue;
|
||||
int trackWidth;
|
||||
QColor trackColor;
|
||||
};
|
||||
|
||||
|
@ -50,6 +51,7 @@ SliderPrivate::SliderPrivate(Slider *parent)
|
|||
pageStepMode(false),
|
||||
stepTo(0),
|
||||
oldValue(parent->value()),
|
||||
trackWidth(2),
|
||||
trackColor(QColor(200, 200, 200))
|
||||
{
|
||||
parent->setMouseTracking(true);
|
||||
|
@ -218,10 +220,12 @@ QRectF SliderPrivate::trackGeometry() const
|
|||
{
|
||||
Q_Q(const Slider);
|
||||
|
||||
qreal hw = static_cast<qreal>(trackWidth)/2;
|
||||
|
||||
return Qt::Horizontal == q->orientation()
|
||||
? QRectF(SLIDER_MARGIN, q->rect().height()/2 - 1,
|
||||
q->rect().width() - SLIDER_MARGIN*2, 2)
|
||||
: QRectF(q->rect().width()/2 - 1, SLIDER_MARGIN, 2,
|
||||
? QRectF(SLIDER_MARGIN, q->rect().height()/2 - hw,
|
||||
q->rect().width() - SLIDER_MARGIN*2, hw*2)
|
||||
: QRectF(q->rect().width()/2 - hw, SLIDER_MARGIN, hw*2,
|
||||
q->rect().height() - SLIDER_MARGIN*2);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include <QLayout>
|
||||
#include <QPushButton>
|
||||
#include "flatbuttonexamples.h"
|
||||
#include "components/flatbutton.h"
|
||||
#include "exampleview.h"
|
||||
|
@ -43,6 +44,24 @@ FlatButtonExamples::FlatButtonExamples(QWidget *parent)
|
|||
);
|
||||
frame->setWidget(view);
|
||||
|
||||
layout->addWidget(frame);
|
||||
}
|
||||
{
|
||||
QPushButton *flatButton = new QPushButton;
|
||||
flatButton->setText("Press me!");
|
||||
flatButton->setIcon(QIcon("../qt-material-widgets/face.svg"));
|
||||
flatButton->setMinimumSize(200, 50);
|
||||
flatButton->setCheckable(true);
|
||||
|
||||
ExampleView *view = new ExampleView;
|
||||
view->setWidget(flatButton);
|
||||
|
||||
Frame *frame = new Frame;
|
||||
frame->setCodeSnippet(
|
||||
""
|
||||
);
|
||||
frame->setWidget(view);
|
||||
|
||||
layout->addWidget(frame);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include <QPushButton>
|
||||
#include <QLineEdit>
|
||||
#include <QSlider>
|
||||
#include <QLabel>
|
||||
#include <QCheckBox>
|
||||
#include "sliderexamples.h"
|
||||
#include "components/slider.h"
|
||||
|
@ -198,24 +199,33 @@ SliderExamples::SliderExamples(QWidget *parent)
|
|||
widget->setLayout(layout);
|
||||
widget->setMinimumWidth(350);
|
||||
|
||||
Slider *slider = new Slider;
|
||||
Slider *slider;
|
||||
QHBoxLayout *hLayout;
|
||||
|
||||
QHBoxLayout *hLayout = new QHBoxLayout;
|
||||
slider = new Slider;
|
||||
|
||||
hLayout = new QHBoxLayout;
|
||||
hLayout->addWidget(new QLabel("R"));
|
||||
hLayout->addWidget(slider);
|
||||
hLayout->addWidget(new QLineEdit);
|
||||
|
||||
layout->addLayout(hLayout);
|
||||
|
||||
slider = new Slider;
|
||||
|
||||
hLayout = new QHBoxLayout;
|
||||
hLayout->addWidget(new QLabel("G"));
|
||||
hLayout->addWidget(slider);
|
||||
hLayout->addWidget(new QLineEdit);
|
||||
|
||||
layout->addLayout(hLayout);
|
||||
|
||||
slider = new Slider;
|
||||
|
||||
hLayout = new QHBoxLayout;
|
||||
hLayout->addWidget(new QLabel("B"));
|
||||
hLayout->addWidget(slider);
|
||||
hLayout->addWidget(new QLineEdit);
|
||||
|
||||
layout->addLayout(hLayout);
|
||||
|
||||
|
|
Loading…
Reference in New Issue