add value text

This commit is contained in:
Peter Hartmann 2021-11-06 10:39:25 +01:00
parent bf1f4906e6
commit e57b101055
4 changed files with 14 additions and 8 deletions

View File

@ -27,12 +27,14 @@ QSK_SUBCONTROL( LightDisplay, LeftLabel )
QSK_SUBCONTROL( LightDisplay, RightLabel ) QSK_SUBCONTROL( LightDisplay, RightLabel )
LightDisplay::LightDisplay( QQuickItem* parent ) LightDisplay::LightDisplay( QQuickItem* parent )
: QskBoundedControl( parent ) : QskBoundedValueInput( parent )
{ {
setAlignmentHint( LeftLabel, Qt::AlignRight ); setAlignmentHint( LeftLabel, Qt::AlignRight );
setAlignmentHint( ValueText, Qt::AlignCenter | Qt::AlignHCenter );
setBoundaries( 0, 100 );
// ### move to Skin: // ### move to Skin:
setGradient( Qt::magenta );
setShadow( { 0, 20 } ); setShadow( { 0, 20 } );
setShadowColor( 0xe5e5e5 ); setShadowColor( 0xe5e5e5 );
} }

View File

@ -5,11 +5,11 @@
#pragma once #pragma once
#include <QskBoundedControl.h> #include <QskBoundedValueInput.h>
#include <QskBoxShapeMetrics.h> #include <QskBoxShapeMetrics.h>
#include <QskShadowMetrics.h> #include <QskShadowMetrics.h>
class LightDisplay : public QskBoundedControl class LightDisplay : public QskBoundedValueInput
{ {
Q_OBJECT Q_OBJECT

View File

@ -30,7 +30,8 @@ QRectF LightDisplaySkinlet::subControlRect( const QskSkinnable* skinnable,
QRectF rect = contentsRect; QRectF rect = contentsRect;
if( subControl == LightDisplay::Groove if( subControl == LightDisplay::Groove
|| subControl == LightDisplay::Panel ) || subControl == LightDisplay::Panel
|| subControl == LightDisplay::ValueText )
{ {
QSizeF size = textLabelsSize( display ); QSizeF size = textLabelsSize( display );
@ -120,8 +121,10 @@ QSGNode* LightDisplaySkinlet::updateSubNode(
} }
case ValueTextRole: case ValueTextRole:
{ {
const QString valueText = QString::number( display->value(), 'f', 0 )
return nullptr; + QStringLiteral( " %" );
return updateTextNode( skinnable, node, valueText, {},
LightDisplay::ValueText );
} }
case LeftLabelRole: case LeftLabelRole:
{ {

View File

@ -54,7 +54,8 @@ namespace
LightIntensity( QQuickItem* parent = nullptr ) LightIntensity( QQuickItem* parent = nullptr )
: Box( "Light intensity", parent ) : Box( "Light intensity", parent )
{ {
new LightDisplay( this ); auto* lightDisplay = new LightDisplay( this );
lightDisplay->setValue( 50.0 );
} }
}; };
} }