TXSLib : Class TNumber

La classe TNumber permet d'afficher un nombre formaté.


Pour des détails concernant le formatage des nombres se reporter à la rubrique : Formatage des nombres.

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

Ci-dessous quelques exemples d'utilisation avec le code pour chacun des exemples.



QFont Fnt("Liberation Mono");
Fnt.setPixelSize(18);
m_pNumber->SetFont(Fnt);
m_pNumber->SetFontSizeIsAuto(false);

m_pNumber->SetBorderStyle(TXS::Box);
m_pNumber->SetBorderWidth(3);
m_pNumber->SetBorderColor(m_pNumber->GetForegroundColor());
m_pNumber->SetHrzAlignment(TXS::AlignRight);

m_pNumber->SetDigitsBeforeDecimalSeparator(1);
m_pNumber->SetDigitsAfterDecimalSeparator(6);
m_pNumber->SetForceSign(true);
m_pNumber->SetUnit(TXS::Unit_ampere, "");
m_pNumber->SetPrefix("Leakage Current :");

m_pNumber->SetNumberFormat(TXS::NumberFormat_Double_ScientificRange);

m_pNumber->SetValue(1.23456789e-7);


QFont Fnt("Liberation Mono");
Fnt.setPixelSize(18);
m_pNumber->SetFont(Fnt);
m_pNumber->SetFontSizeIsAuto(false);

m_pNumber->SetBorderStyle(TXS::Box);
m_pNumber->SetBorderWidth(3);
m_pNumber->SetBorderColor(m_pNumber->GetForegroundColor());
m_pNumber->SetHrzAlignment(TXS::AlignRight);

m_pNumber->SetDigitsBeforeDecimalSeparator(1);
m_pNumber->SetDigitsAfterDecimalSeparator(6);
m_pNumber->SetForceSign(true);
m_pNumber->SetUnit(TXS::Unit_ohm, "");
m_pNumber->SetPrefix("Insulation Resistance :");

m_pNumber->SetNumberFormat(TXS::NumberFormat_Double_ScientificRange);

m_pNumber->SetValue(1.23456789e11);


QFont Fnt("Liberation Mono");
Fnt.setPixelSize(18);
m_pNumber->SetFont(Fnt);
m_pNumber->SetFontSizeIsAuto(false);

m_pNumber->SetBorderStyle(TXS::Box);
m_pNumber->SetBorderWidth(3);
m_pNumber->SetBorderColor(m_pNumber->GetForegroundColor());
m_pNumber->SetHrzAlignment(TXS::AlignRight);

m_pNumber->SetDigitsBeforeDecimalSeparator(1);
m_pNumber->SetDigitsAfterDecimalSeparator(6);
m_pNumber->SetForceSign(true);
m_pNumber->SetUnit(TXS::Unit_ohm, "");
m_pNumber->SetPrefix("Insulation Resistance :");

m_pNumber->SetNumberFormat(TXS::NumberFormat_Double_ScientificStandard);

m_pNumber->SetValue(1.23456789e11);


QFont Fnt("Liberation Mono");
Fnt.setPixelSize(18);
m_pNumber->SetFont(Fnt);
m_pNumber->SetFontSizeIsAuto(false);

m_pNumber->SetBorderStyle(TXS::Box);
m_pNumber->SetBorderWidth(3);
m_pNumber->SetBorderColor(m_pNumber->GetForegroundColor());
m_pNumber->SetHrzAlignment(TXS::AlignRight);

m_pNumber->SetXOBFormat(TXS::XOBFormat_Word);
m_pNumber->SetShowXOB(true);
m_pNumber->SetUpperXOB(true);

m_pNumber->SetNumberFormat(TXS::NumberFormat_Integer_AutoHexaDecimal);

m_pNumber->SetValue((int64_t)(123456789));


QFont Fnt("Liberation Mono");
Fnt.setPixelSize(18);
m_pNumber->SetFont(Fnt);
m_pNumber->SetFontSizeIsAuto(false);

m_pNumber->SetBorderStyle(TXS::Box);
m_pNumber->SetBorderWidth(3);
m_pNumber->SetBorderColor(m_pNumber->GetForegroundColor());
m_pNumber->SetHrzAlignment(TXS::AlignRight);

m_pNumber->SetDigitsForIntegers(12);
m_pNumber->EnableGroupSeparator(true);
m_pNumber->SetForceSign(true);
m_pNumber->SetShowXOB(true);
m_pNumber->SetUpperXOB(true);

m_pNumber->SetNumberFormat(TXS::NumberFormat_Integer_Decimal);

m_pNumber->SetValue((int64_t)(123456789));

Conseils d'utilisation

La classe TNumberCruncher utilisée par cette classe pour formater les nombres vous permet de retourner des nombres formatés de manière la plus consistante possible. Cela permet d'éviter des effets de glissement horizontal de l'affichage des nombres lorsque la valeur change. Avec un bon pramétrage des propriétés, vous pouvez avoir toujours le même nombre de caaractères à des places identiques. Afin de compléter cette visualisation facilitée, il est bon d'utiliser une police de caractère à pas fixe, ou tous les caractères ont le même encombrement horizontal. Sur le Raspberry, la police "Liberation Mono" est de ce type. De plus, la lecture sera facilitée si vous utilisez un aligenement horizontal à droite en donnant à la propriété HrzAlignment la valeur "TXS::AlignRight".

Relations d'héritage

- Hérite de :
   - TScalarWidget.

Fonctions publiques

TNumber(QWidget *parent = nullptr)
voidvoid Copy(TNumber* pTarget)
TNumber* CreateCopy(QWidget *parent = nullptr)
voidbool Draw(QPainter* pPainter, const QRect& Rect)
doubleGetValue()
QStringGetValueAsString()
QUuidGetTWidgetIdentifier()
QStringGetTWidgetIdentifierAsString()
QStringGetTWidgetName()
voidSetUnit(const TXS::Unit& Unit, const QString& UserDefinedUnit)
boolSetValue(const double& RealValue)
boolSetValue(const int8_t& DecimalValue)
boolSetValue(const int16_t& DecimalValue)
boolSetValue(const int32_t& DecimalValue)
boolSetValue(const int64_t& DecimalValue)
boolSetValue(const uint8_t& DecimalValue)
boolSetValue(const uint16_t& DecimalValue)
boolSetValue(const uint32_t& DecimalValue)

Propriétés

DigitsAfterDecimalSeparator uint SetDigitsAfterDecimalSeparator GetDigitsAfterDecimalSeparator
DigitsBeforeDecimalSeparator uint SetDigitsBeforeDecimalSeparator GetDigitsBeforeDecimalSeparator
DigitsForIntegers uint SetDigitsForIntegers GetDigitsForIntegers
EnableGroupSeparator bool SetEnableGroupSeparator GetEnableGroupSeparator
Font QFont SetFont GetFont
FontSizeAuto bool SetFontSizeIsAuto IsFontSizeAuto
ForegroundColor QColor SetForegroundColor GetForegroundColor
ForceCLocal bool SetForceCLocal GetForceCLocal
ForceSign bool SetForceSign GetForceSign
HrzAlignment TXS::HrzAlignment SetHrzAlignment GetHrzAlignment
MessageOverflow QString SetMessageOverflow GetMessageOverflow
NumberFormat TXS::NumberFormat SetNumberFormat GetNumberFormat
PadCharacter QChar SetPadCharacter GetPadCharacter
Prefix QString SetPrefix GetPrefix
ShowXOB bool SetShowXOB GetShowXOB
TimeFormat TXS::TimeFormat SetTimeFormat GetTimeFormat
Unit TXS::Unit GetUnit
UpperXOB bool SetUpperXOB GetUpperXOB
UserDefinedUnit QString GetUserDefinedUnit
VrtAlignment TXS::VrtAlignment SetVrtAlignment GetVrtAlignment
XOBFormat TXS::XOBFormat SetXOBFormat GetXOBFormat


TNumber::TNumber(QWidget *parent = nullptr)

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


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



void TNumber::Copy(TNumber* pTarget)

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


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



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

Description : Crée et retourne un nouvel objet de la classe TNumber 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 TNumber::Draw(QPainter* pPainter, const QRect& Rect)

Description : Permet de tracer cet objet dans un rectangle dont les coordonnées sont passées en paramètres au moyen du QPainter passé en paramètre et créé par une classe héritant du QPaintDevice.


Cette méthode est essentiellement destinée à une utilisation pour tracer sur un LCD via les classes Classe CLCD7789 et Classe CLCD7789PaintDevice de la librairie cpp2835. Voir la rubrique : LCD 7789 avec Qt


Elle peut toutefois être utilisée pour tracer dans un objet d'une classe héritant de QPaintDevice, comme QImage ou QPixmap pour créer une image de l'objet sauvegardable dans un fichier image.


Sauf cas particuliers, cette méthode ne doit pas être utilisée pour tracer sur le moniteur sur lequel fonctionne l'application qui l'héberge. La mise à jour du tracé dans cette condition est contrôlée par l'application par surcharge de la méthode protégée "QWidget::paintEvent".


Paramètre : pPainter - type QPainter* - Pointeur vers un QPainter attaché au QPaintDevice dans lequel il faut tracer l'objet.

Paramètre : Rect - type const QRect& - Coordonnées du rectangle de tracé dans le QPaintDevice.



QUuid TNumber::GetTWidgetIdentifier()

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


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



QString TNumber::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 : 7d7dc856-1210-496d-9578-650597655b94



QString TNumber::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 : TNumber



bool TNumber::SetValue(const double& RealValue)

Description : Cette fonction définie la valeur à formater.


Paramètre : RealValue - type double& - Valeur à formater

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



void TNumber::SetValue(const int8_t& DecimalValue)

Description : Cette fonction définie la valeur à formater.


Paramètre : DecimalValue - type int8_t& - Valeur à formater

Valeur de retour : Valeur formatée sous forme de chaine de caractères. Si le format ou les paramètres de formatage ne s'appliquent pas, la valeur retournée sera une chaine vide.



void TNumber::SetValue(const int16_t& DecimalValue)

Description : Cette fonction définie la valeur à formater.


Paramètre : DecimalValue - type int16_t& - Valeur à formater

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



void TNumber::SetValue(const int32_t& DecimalValue)

Description : Cette fonction définie la valeur à formater.


Paramètre : DecimalValue - type int32_t& - Valeur à formater

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



void TNumber::SetValue(const int64_t& DecimalValue)

Description : Cette fonction définie la valeur à formater.


Paramètre : DecimalValue - type int64_t& - Valeur à formater

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



void TNumber::SetValue(const uint8_t& DecimalValue)

Description : Cette fonction définie la valeur à formater.


Paramètre : DecimalValue - type uint8_t& - Valeur à formater

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



void TNumber::SetValue(const uint16_t& DecimalValue)

Description : Cette fonction définie la valeur à formater.


Paramètre : DecimalValue - type uint16_t& - Valeur à formater

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



void TNumber::SetValue(const uint32_t& DecimalValue)

Description : Cette fonction définie la valeur à formater.


Paramètre : DecimalValue - type uint32_t& - Valeur à formater

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



void TNumber::SetValue(const QDateTime& DateTimeValue)

Description : Cette fonction définie la valeur à formater.


Paramètre : DateTimeValue - type QDateTime& - Valeur à formater

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



double TNumber::GetValue()

Description : Cette fonction retourne la valeur à formater.


Valeur de retour : Valeur à formater



QString TNumber::GetValueAsString()

Description : Cette fonction retourne la valeur formatée.


Valeur de retour : Valeur formatée



void TNumber::SetUnit(const TXS::Unit& Unit, const QString& UserDefinedUnit)

Description : Cette fonction définie les propriétés Unit et UserDefinedUnit. Cette dernière sera l'unité unqiuement si la propriété Unit reçooit la valeur "TXS::Unit_userdefined".


Paramètre : Unit - type TXS::Unit& - Unité ISO

Paramètre : UserDefinedUnit - type QString& - Unité utilisateur


NumberFormat

Description : Cette propriété définie le format de formatage des nombres ou date et heure.


Type : TXS::NumberFormat

Valeur par défaut : TXS::NumberFormat_Any_Compact

Ecriture : void SetNumberFormat(const TXS::NumberFormat& Format)

Lecture : TXS::NumberFormat GetNumberFormat()



TimeFormat

Description : Cette propriété définie le format de formatage des dates et heures. Ne s'applique que si la propriété NumberFormat est réglée à la valeur "NumberFormat_DateTime"


Type :TXS::TimeFormat

Valeur par défaut : TXS::TXS::TimeFormat_SSfff

Ecriture : void SetTimeFormat(const TXS::TimeFormat_SSfff& Format)

Lecture : TXS::TimeFormat_SSfff GetTimeFormat()



DigitsBeforeDecimalSeparator

Description : Cette propriété définie le nombre de chiffres significatifs avant le séparateur décimal lors du formatage de valeurs réelles.


Type : uint

Valeur par défaut : 3

Ecriture : void SetDigitsBeforeDecimalSeparator(const uint& nDigits)

Lecture : uint GetDigitsBeforeDecimalSeparator()



DigitsAfterDecimalSeparator

Description : Cette propriété définie le nombre de chiffres significatifs après le séparateur décimal lors du formatage de valeurs réelles.


Type : uint

Valeur par défaut : 3

Ecriture : void SetDigitsAfterDecimalSeparator(const uint& nDigits)

Lecture : uint GetDigitsAfterDecimalSeparator()



DigitsForIntegers

Description : Cette propriété définie le nombre de chiffres significatifs lors du formatage de valeurs entières.


Type : uint

Valeur par défaut : 6

Ecriture : void SetDigitsForIntegers(const uint& nDigits)

Lecture : uint GetDigitsForIntegers()



ForceSign

Description : Cette propriété définie si le signe doit être affiché dans tous les cas.


Type : bool

Valeur par défaut false

Ecriture : void SetForceSign(const bool& tF)

Lecture : bool GetForceSign()



PadCharacter

Description : Cette propriété définie le caractère de complément lorsque le nombre de chiffres significatifs est inférieur à la consigne.


Type : QChar

Valeur par défaut _

Ecriture : void SetPadCharacter(const QChar& char)

Lecture : QChar GetPadCharacter()



MessageOverflow

Description : Cette propriété définie la chaine à retourner en cas de dépassement de gamme.


Type : QString

Valeur par défaut OVL

Ecriture : void SetMessageOverflow(const QString& str)

Lecture : QString GetMessageOverflow()



ForceCLocal

Description : Cette propriété définie si le formatage doit respecter la norme du lanage C plutôt que delui de la langue locale. Dans ce cas le séparateur décimalsera le point '.'. A noter que ce format interdit les séparations de groupes. La propriété EnableGroupSeparator est donc sans effet lorsque cette propriété est placée à true.


Type : bool

Valeur par défaut false

Ecriture : void SetForceCLocal(const bool& tF)

Lecture : bool GetForceCLocal()



EnableGroupSeparator

Description : Cette propriété définie si le nombre retourné inclus un espace entre chaque groupe de 3 chiffres significatifs.


Type : bool

Valeur par défaut true

Ecriture : void EnableGroupSeparator(const bool& tF)

Lecture : bool GetEnableGroupSeparator()



XOBFormat

Description : Cette propriété définie le groupement des chiffres et lettres lors du formatage en bases binaire, octodécimale et hexadécimale.


Type : TXS::XOBFormat

Valeur par défaut : TXS::XOBFormat_None

Ecriture : void SetXOBFormat(const TXS::XOBFormat& Format)

Lecture : TXS::XOBFormat GetXOBFormat()



ShowXOB

Description : Cette propriété définie si le nombre retourné inclus le préfixe de base lors du formatage en bases binaire, octodécimale et hexadécimale.


Type : bool

Valeur par défaut true

Ecriture : void SetShowXOB(const bool& tF)

Lecture : bool GetShowXOB()



UpperXOB

Description : Cette propriété définie si le nombre retourné incluant le préfixe de base lors du formatage en bases binaire, octodécimale et hexadécimale doit être ou pas en majuscules. Cela concerne également les lettres dans une valeur hexadécimale.


Type : bool

Valeur par défaut false

Ecriture : void SetUpperXOB(const bool& tF)

Lecture : bool GetUpperXOB()



Font

Description : Cette propriété définie la police de caractères du numbre.


Type : QFont

Valeur par défaut : Police par défaut de l'application

Ecriture : SetFont(const QFont& Font)

Lecture : QFont GetFont()



FontSizeAuto

Description : Cette propriété définie si la taille du texte affichée est déterminée automatiquement par le widget en fonction de sa taille à l'écran.


Type : bool

Valeur par défaut : true

Ecriture : SetFontSizeAuto(const bool& Tf)

Lecture : bool IsFontSizeAuto()



ForegroundColor

Description : Cette propriété définie la couleur du nombre.


Type : QColor

Valeur par défaut : Couleur de la palette courante de l'application avec le rôle "QPalette::Dark" et la groupe "QPalette::Active". (Voir la classe QPalette de Qt)

Ecriture : void SetForegroundColor(const QColor& Color)

Lecture : QColor GetForegroundColor()



HrzAlignment

Description : Cette propriété définie l'alignement horizontal du nombre dans le widget.


Type : TXS::HrzAlignment

Valeur par défaut : TXS::AlignCenter

Ecriture : void SetHrzAlignment(const TXS::HrzAlignment& Align)

Lecture : TXS::HrzAlignment GetHrzAlignment()



VrtAlignment

Description : Cette propriété définie l'alignement vertical du nombre dans le widget.


Type : TXS::VrtAlignment

Valeur par défaut : TXS::AlignMiddle

Ecriture : void SetVrtAlignment(const TXS::VrtAlignment& Align)

Lecture : TXS::VrtAlignment SetVrtAlignment()



Unit

Description : Cette propriété définie l'unité ISO.


Type : TXS::Unit

Valeur par défaut TXS::Unit_nounit

Lecture : TXS::Unit GetUnit()



UserDefinedUnit

Description : Cette propriété définie l'unité utilisateur.


Type : QString

Valeur par défaut ""

Lecture : QString GetUserDefinedUnit()



Prefix

Description : Cette propriété définie le préfixe du nombre.


Type : QString

Valeur par défaut ""

Ecriture : void SetPrefix(const QString& Prefix)

Lecture : QString GetPrefix()