TXSLib : Class TKnob

La classe TKnob est un widget qui permet de saisir une valeur numérique au moyen d'un potentiomètre rotatif.


Cette classe d'objet n'est pas compatible avec son utllisation sur un afficheur LCD. Voir la rubrique : LCD 7789 avec Qt

Ci-dessous un exemple d'un objet de la classe TKnob ainsi que le code utilisé pour configurer celui-ci.



m_pKnob = new TKnob();

// On donne au knob une taille fixe
m_pKnob->setFixedSize(240,240);

// C'esrt un widget encombrant.... On se fait de la place....
m_pKnob->SetCaptionVisible(false);
m_pKnob->SetNumericIndicatorVisible(false);

// Réduction de la taille des graduations
QFont fnt = m_pKnob->GetScaleLabelsFont();
fnt.setPixelSize(8);
m_pKnob->SetScaleLabelsFont(fnt);

// Gamme de travail
m_pKnob->SetMinMax(-100, 100);

// Et initialisation au min de la gamme
m_pKnob->SetValueToMin();

// Et résolution
m_pKnob->SetLargeStep(5);
m_pKnob->SetSmallStep(2);
m_pKnob->SetResolution(1);

// Look du bouton
m_pKnob->SetKnobStyle(TXS::KnobStyle_1);
m_pKnob->SetKnobPointerStyle(TXS::KnobStyle_Line);

// Les leds éteintes sont grises
m_pKnob->SetDefaultColorZonesLedsColorAboveCursor(QColor("DimGrey"));

// On définie les couleurs à appliquer à la zone de couleurs du knob
m_pKnob->AppendColorZone(-100, -75,QColor("darkmagenta"));
m_pKnob->AppendColorZone(-75, -50 ,QColor("darkblue"));
m_pKnob->AppendColorZone(-50, -25 ,QColor("mediumblue"));
m_pKnob->AppendColorZone(-25, -10 ,QColor("dodgerblue"));
m_pKnob->AppendColorZone(-10, -5 ,QColor("darkgreen"));
m_pKnob->AppendColorZone(-5, 5 ,QColor("lime"));
m_pKnob->AppendColorZone(5, 10 ,QColor("yellow"));
m_pKnob->AppendColorZone(10, 25 ,QColor("darkorange"));
m_pKnob->AppendColorZone(25, 50 ,QColor("orangered"));
m_pKnob->AppendColorZone(50, 75 ,QColor("firebrick"));
m_pKnob->AppendColorZone(75, 100 ,QColor("crimson"));

// On peut ajuster la zone d'affichage des zones de couleurs
m_pKnob->SetAutoAdjustColorZonesLeds(false);
m_pKnob->SetColorZonesBlocks(60);
m_pKnob->SetColorZonesThickness(8);
m_pKnob->SetColorZonesBlocksWidth(6);

Interface opérateur

L'utilisation d'un TKnob répond aux règles suivantes :


 - Les mouvements sont réglés par 3 propriétés exprimées en pourcentage de l'intervalle entre deux graduations principales. :

  - Resolution : Cette propriété définie le pas le plus fin. A titre d'exemple, si l'intervalle entre deux graduation principales est de 10 et que cette propriété est réglée à 0,1%, le knob ne retournera pas de valeurs plus précise que le dixième : 0, 0.01, 0.02, 0.03, etc...
  - SmallStep : Cette propriété définie un pas plus rapide que la résolution.
  - LargeStep : Cette propriété définie le pas le plus rapide.

La valeur du knob peut être modifiée par la souris, la roulette de la souris et le clavier. Ces 3 moyens fonctionnent en même temps. On peut approcher la valeur souhaitée à la souris, puis la régler plus finement à la roulette de la souris ou au clavier.

Les actions possibles, et leur correspondances sur la variation de la valeur du knob sont les suivantes :



Action Aucune touche appuyée Touche ALT appuyée Touche SHIFT appuyée
Souris +- Resolution +- Resolution +- Resolution
Roulette de la souris +- Resolution +- SmallStep +- LargeStep
Flêche montante + Resolution + SmallStep + LargeStep
Flêche descendante - Resolution - SmallStep - LargeStep
Flêche gacuhe + Resolution + SmallStep + LargeStep
Flêche droite - Resolution - SmallStep - LargeStep
Page Up + Resolution X 5 + SmallStep X 5 + LargeStep X 5
Page Down - Resolution X 5 - SmallStep X 5 - LargeStep X 5
Home Va à la valeur minimale Va à la valeur minimale Va à la valeur minimale
End Va à la valeur maximale Va à la valeur maximale Va à la valeur maximale

Note : Sur le Raspberry Pi et certaines versions de Linux, la touche ALT peut être inopérante avec la roulette de la souris.

Relations d'héritage

- Hérite de :
   - TCircularScalarWidget.

Fonctions publiques

Note : Les fonctions suivantes héritées de la classe TCircularScalarWidget sont surchargées par cette classe :

 - SetScaleTicksSpecification
 - ScaleTickSetMinMaxsInterval




TKnob(QWidget *parent = nullptr)
voidvoid Copy(TKnob* pTarget)
TKnob* CreateCopy(QWidget *parent = nullptr)
voidbool Draw(QPainter* pPainter, const QRect& Rect)
boolEditColorZones(const double& Min = DBL_MAX, const double& Max = DBL_MAX, const QIcon& DialogIcon = QIcon(), const QString& DialogTitle = "", QWidget* pParent = nullptr)
QUuidGetTWidgetIdentifier()
QStringGetTWidgetIdentifierAsString()
QStringGetTWidgetName()
boolSetMinMax(const double& Min, const double & Max)
voidSetScaleTicksSpecification(const TXS::TicksSpecification& TicksSpecification)
voidSetValueToMax()
voidSetValueToMin()

Signaux publiques

voidValueChanged(double dValue)

Propriétés

Propriétés Type Ecriture Lecture
KnobColor QColor SetKnobColor GetKnobColor
KnobPointerColor QColor SetKnobPointerColor GetKnobPointerColor
KnobStyle TXS::KnobStyle SetKnobStyle GetKnobStyle
LargeStep double SetLargeStep GetLargeStep
Maximum double GetMaximum
Minimum double GetMinimum
Resolution double SetResolution GetResolution
SmallStep double SetSmallStep GetSmallStep
Value double SetValue GetValue


TKnob::TKnob(QWidget *parent = nullptr)

Description : Contructeur. Instancie un objet de la classe TKnob.


Paramètre : parent - type QWidget* - Pointeur vers un QWidget parent s'il existe. Ce paramètre est optionnel



void TKnob::Copy(TKnob* pTarget)

Description : Copie toutes les valeurs des propriétés de cet objet aux propriétés de l'objet TKnob passé en paramètre.


Paramètre : pTarget - type TCompass* - Pointeur vers un objet TKnob vers lequel sont copiées les valeurs des propriétés de cet objet



TKnob* TKnob::CreateCopy(QWidget *parent = nullptr)

Description : Crée et retourne un nouvel objet de la classe TKnob après avoir initialisé toutes ses propriétés aux valeurs de celles de l'objet utilisé pour créer le nouvel objet.


Paramètre : parent - type QWidget* - Pointeur vers un QWidget parent s'il existe. Ce paramètre est optionnel


Valeur de retour : Pointeur vers le nouvel objet créé.



void TKnob::EditColorZones(const double& Min = DBL_MAX, const double& Max = DBL_MAX, const QIcon& DialogIcon = QIcon(), const QString& DialogTitle = "", QWidget* pParent = nullptr)

Description : Affiche une boite de dialogue modale permettant de créer ou de modifier la liste de zones de couleurs de l'objet.


Paramètre : Min - type const double& - Valeur de seuil bas minimale des zones de couleurs.

Paramètre : Max - type const double& - Valeur de seuil haut maximale des zones de couleurs.

Paramètre : DialogIcon - type const QIcon& - Icone à afficher dans la barre de titre de la fenêtre de dialogue.


Paramètre : DialogTitle - type const QString& - Texte à afficher dans la barre de titre de la fenêtre de dialogue.


Paramètre : parent - type QWidget* - Pointeur vers un QWidget parent de la boite de dialogue s'il existe. Ce paramètre est optionnel



QUuid TKnob::GetTWidgetIdentifier()

Description : Retourne un UUID pour cettte classe d'objets.


Valeur de retour : UUID de cette classe d'objets.



QString TKnob::GetTWidgetIdentifierAsString()

Description : Retourne un UUID pour cettte classe d'objets.


Valeur de retour : UUID de cette classe d'objets sous forme de chaine de caractères. La valeur de l'UUID de cette est : f051c348-ab1a-4294-8e1e-179b71052ab4



QString TKnob::GetTWidgetName()

Description : Retourne le nom de la classe.


Valeur de retour : Nom de cette classe d'objets sous forme de chaine de caractères. La valeur pour cette class est : TKnob



bool TKnob::SetMinMax(const double& Min, const double & Max)

Description : Assigne les valeurs minimales et maximales entre lesquelles le knob fonctionne. Ces valeurs peuvent être retrouvées via les propriétés Maximum et Minimum.


Paramètre : Min - type const double& - Valeur minimale de fonctionnement du knob.

Paramètre : Max - type const double& - Valeur maximale de fonctionnement du knob.

Valeur de retour : Booléen indiquant le succès ou l'echec de la fonction.



void TKnob::SetScaleTicksSpecification(const TXS::TicksSpecification& TicksSpecification)

Description : Cette fonction définie le choix de l'algorithme de calcul des valeurs des graduations principales de l'axe.


Une explication détaillée est documentée à la page : Gestion des axes


Paramètre : TicksSpecification - type TXS::TicksSpecification& - Spécification des graduations de l'axe.



QString TKnob::SetValueToMax()

Description : Assigne la valeur maximale de la gamme du knob à la propriété Value.



QString TKnob::SetValueToMin()

Description : Assigne la valeur minimale de la gamme du knob à la propriété Value.



void TKnob::ValueChanged(double dValue)

Description : Ce signal est émis à chaque fois que la propriété "Value" est modifiée par la saisie.


Paramètre : dValue - type double - Valeur de la saisie, c'est à dire la valeur de la Propriété "Value"



KnobColor

Description : Cette propriété définie la couleur du bouton du knob lorsque la propriété KnobStyle est réglée à la valeur TXS::KnobStyle_0.


Type : QColor

Valeur par défaut : QColor(128,128,128) : Gris

Ecriture : void SetKnobColor(const QColor& Color);

Lecture : QColor GetKnobColor();



KnobPointerColor

Description : Cette propriété définie la couleur de l'index du bouton du knob.


Type : QColor

Valeur par défaut : QColor(192,0,0) : Vert

Ecriture : void SetKnobPointerColor(const QColor& Color);

Lecture : QColor GetKnobPointerColor();



KnobStyle

Description : Cette propriété définie le style du bouton du knob.


Type : TXS::KnobStyle

Valeur par défaut : TXS::KnobStyle_5

Ecriture : void SetKnobStyle(const TXS::KnobStyle& Style);

Lecture : TXS::KnobStyle GetKnobStyle();



LargeStep

Description : Cette propriété définie le pas maximal de mouvement du knob.


Pour une desciption détaillée, se reporter à la rubrique : Interface Opérateur.


Note : La fonction d'écriture retourne un booléen indiquant si la valeur est comprise dans la gamme du knob.


Type : double

Valeur par défaut : 5

Ecriture : bool SetLargeStep(const double& dValue);

Lecture : double GetLargeStep();



Maximum

Description : Cette propriété retourne la bone maximale du knob définie par la fonction SetMinMax.


Type : double

Lecture : double GetMaximum();



Minimum

Description : Cette propriété retourne la bone minimale du knob définie par la fonction SetMinMax.


Type : double

Lecture : double GetMinimum();



Resolution

Description : Cette propriété définie la résolution de mouvement du knob.


Pour une desciption détaillée, se reporter à la rubrique : Interface Opérateur.


Note : La fonction d'écriture retourne un booléen indiquant si la valeur est comprise dans la gamme du knob.


Type : double

Valeur par défaut : 2

Ecriture : bool SetResolution(const double& dValue);

Lecture : double GetResolution();



SmallStep

Description : Cette propriété définie le pas accentué de mouvement du knob.


Pour une desciption détaillée, se reporter à la rubrique : Interface Opérateur.


Note : La fonction d'écriture retourne un booléen indiquant si la valeur est comprise dans la gamme du knob.


Type : double

Valeur par défaut : 2

Ecriture : bool SetSmallStep(const double& dValue);

Lecture : double GetSmallStep();



Value

Description : Cette propriété est la propriété principale de cette classe. Elle représente la position du knob sur sa gamme. A chaque fois que cette valeur est modifié le signal ValueChanged est émis.


Note : La fonction d'écriture retourne un booléen indiquant si la valeur est comprise dans la gamme du knob.


Type : double

Valeur par défaut : 0

Ecriture : bool SetValue(const double& dValue);

Lecture : double GetValue();