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.

// 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) | |
| void | void Copy(TKnob* pTarget) |
| TKnob* | CreateCopy(QWidget *parent = nullptr) |
| void | bool Draw(QPainter* pPainter, const QRect& Rect) |
| bool | EditColorZones(const double& Min = DBL_MAX, const double& Max = DBL_MAX, const QIcon& DialogIcon = QIcon(), const QString& DialogTitle = "", QWidget* pParent = nullptr) |
| QUuid | GetTWidgetIdentifier() |
| QString | GetTWidgetIdentifierAsString() |
| QString | GetTWidgetName() |
| bool | SetMinMax(const double& Min, const double & Max) |
| void | SetScaleTicksSpecification(const TXS::TicksSpecification& TicksSpecification) |
| void | SetValueToMax() |
| void | SetValueToMin() |
Signaux publiques
| void | ValueChanged(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 |
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
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
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éé.
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
Description : Retourne un UUID pour cettte classe d'objets.
Valeur de retour : UUID de cette classe d'objets.
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
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
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.
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.
Description : Assigne la valeur maximale de la gamme du knob à la propriété Value.
Description : Assigne la valeur minimale de la gamme du knob à la propriété Value.
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"
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();
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();
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();
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();
Description : Cette propriété retourne la bone maximale du knob définie par la fonction SetMinMax.
Type : double
Lecture : double GetMaximum();
Description : Cette propriété retourne la bone minimale du knob définie par la fonction SetMinMax.
Type : double
Lecture : double GetMinimum();
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();
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();
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();