18 #include <QHBoxLayout> 24 QHBoxLayout *layout =
new QHBoxLayout();
25 layout->setContentsMargins( 0, 0, 0, 0 );
26 layout->setSpacing( 3 );
29 mSlider =
new QSlider();
30 mSlider->setMinimum( 0 );
31 mSlider->setMaximum( 1000 );
32 mSlider->setSingleStep( 10 );
33 mSlider->setPageStep( 100 );
34 mSlider->setValue( 1000 );
35 mSlider->setOrientation( Qt::Horizontal );
36 layout->addWidget( mSlider, 1 );
39 mSpinBox->setMinimum( 0.0 );
40 mSpinBox->setMaximum( 100.0 );
41 mSpinBox->setValue( 100.0 );
43 mSpinBox->setMinimumSize( QSize( 100, 0 ) );
44 mSpinBox->setDecimals( 1 );
45 mSpinBox->setSuffix( tr(
" %" ) );
46 layout->addWidget( mSpinBox, 0 );
48 setFocusProxy( mSpinBox );
50 connect( mSlider, &QSlider::valueChanged,
this, [ = ](
int value ) { mSpinBox->setValue( value / 10.0 ); } );
51 connect( mSpinBox, static_cast <
void (
QgsDoubleSpinBox::* )(
double ) > ( &QgsDoubleSpinBox::valueChanged ),
this, [ = ](
double value ) {
whileBlocking( mSlider )->setValue( value * 10 ); } );
52 connect( mSpinBox, static_cast <
void (
QgsDoubleSpinBox::* )(
double ) > ( &QgsDoubleSpinBox::valueChanged ),
this, &QgsOpacityWidget::spinChanged );
57 return mSpinBox->value() / 100.0;
62 mSpinBox->setValue( opacity * 100.0 );
65 void QgsOpacityWidget::spinChanged(
double value )
The QgsSpinBox is a spin box with a clear button that will set the value to the defined clear value...
void setClearValue(double customValue, const QString &clearValueText=QString())
Defines the clear value as a custom value and will automatically set the clear value mode to CustomVa...
QgsSignalBlocker< Object > whileBlocking(Object *object)
Temporarily blocks signals from a QObject while calling a single method from the object.