wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 4

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Création de composants spécifiques
» wxFastGauge
Conversation : wxFastGauge
29-10-2008 17:39:31  wxFastGauge #1
cfdev (Membre)
Lieu: Alpes de Haut Provence
Inscrit le : 08-11-2007
Messages: 127
Snippets: 4
Tutoriels: 0
Site web
Hors ligne
wxFastGauge

Auteur : ¢yril Frausti
Licence de cette class : wxwindows
Application : industrielle, médicale, toutes les applications de mesure et autres...

wxFastGauge une class wxWidgets pour créer des jauges (progression, mesures etc...), elle se veut légère, rapide et facile d'utilisation.

http://cfdev.org/lib/exe/fetch.php?w=&h=&cache=cache&media=software:wxfastgauge.png

Fichiers sources de wxFastGauge.


Application demo
Application demo Compilé win32.
Sources de Application demo.


Comment l'utiliser ?
Ajouter le wxFastGauge.cpp et wxFastGauge.h à votre projet.

tout d'abord créer l'objet:

Code wxWidgets:

    wxFastGauge *my_fastGauge = new wxFastGauge( this, wxID_ANY , wxPoint(100,10), wxSize(200,60) );


Configurez le composant, définissez le minimum et le maximum :

Code wxWidgets:

    my_fastGauge->SetMinMaxValue(0,100);


Choix de l'orientation de Jauge:

Code wxWidgets:

    my_fastGauge->SetOrientGauge(wxHORIZONTAL);


Définir la police pour afficher la valeur:

Code wxWidgets:

    wxFont *myfont = new wxFont(8, wxMODERN , wxNORMAL, wxNORMAL);
    my_fastGauge->SetFontValue(myfont);


Vous pouvez régler la couleur de jauge:

Code wxWidgets:

    my_fastGauge->SetColorGauge(wxGREEN);


Ou bien faire un dégrader:

Code wxWidgets:

    my_fastGauge->ShowGradientColor(true);
    my_fastGauge->SetColorGradientGauge(wxGREEN, wxRED);


Pour finir mettre une valeur :

Code wxWidgets:

    my_fastGauge->SetValue(50);


Enjoy :D !

Dernière modification par cfdev (17-11-2008 12:22:47)


GNU Linux Power !
Slacker
04-11-2008 20:31:27  Re: wxFastGauge #2
congelli501 (Membre)
Inscrit le : 08-06-2008
Messages: 46
Snippets: 0
Tutoriels: 0
Site web
Hors ligne
Bravo,
Ça peut être utile !

Quelques remarques rapides :
a/ Pourquoi les attributs de ta class sont-ils en "public" ? Il faut mettre des accesseurs !

b/ Et pourquoi ne commence t-il pas par "m_" ?

c/ "void setValue(int val);"
   ==> Pourquoi pas "void SetValue(const int &val) ;", c'est toujours un peu plus rapide. Et avec un S majuscule, pour coller avec les standards de wxWidgets.

d/ "int GetValue() { return value ; } ;"
   ==> "int GetValue() const { return value ; } ;", c'est mieux ;-).

Dernière modification par congelli501 (04-11-2008 20:41:16)


Mes programmes open sources !
On dit que la Grèce antique beaucoup d'influence sur notre culture... C'est vrai : la chute d'Athènes a eu lieu en 404 avant JC. Ca vous rappelle quelque chose ?
05-11-2008 12:12:46  Re: wxFastGauge #3
cfdev (Membre)
Lieu: Alpes de Haut Provence
Inscrit le : 08-11-2007
Messages: 127
Snippets: 4
Tutoriels: 0
Site web
Hors ligne
salut congelli,

merci pour tes remarques!

pour a/ et b/ un peu plus de précision serait sympa :)

c/ les majuscules en fait c'est plus une histoire d'habitude grégorienne si je me souviens bien mais pour coller avec wxWidgets pas de problème.

En effet passer le ptr est plus rapide que la valeur elle même, mais bon je ne pense pas que ce soit d'un gain significatif par rapport aux fonctions d'affichages.

d/ Quel est l'avantage du rajout de const ?

merci

GNU Linux Power !
Slacker
05-11-2008 12:27:30  Re: wxFastGauge #4
Gandi (Gourou de la secte)
Lieu: Clermont-Ferrand
Inscrit le : 10-10-2007
Messages: 214
Snippets: 5
Tutoriels: 0
Site web
Hors ligne
Le const dit que la fonction ne modifira pas les valeurs de la classe ( peut être que le compilo peut optimiser un truc mais pour moi c'est une question de lisibilité ) .

"Les ordinateurs ne remplaceront jamais les livres. Vous ne pouvez pas vous mettre sur une pile de disquettes pour atteindre le haut de votre armoire" ( Sam Ewing )
05-11-2008 13:31:54  Re: wxFastGauge #5
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne
Pour le A je pencherai sur un truc du style :

Code Cpp:

 
private int a;
 
public void setA(int a)
{
//Des tests pour eviter les conneries aussi
this->a = a;
}
 

Dernière modification par xxltux (05-11-2008 13:32:33)


Itérer est humain, récurser est divin
05-11-2008 14:43:29  Re: wxFastGauge #6
congelli501 (Membre)
Inscrit le : 08-06-2008
Messages: 46
Snippets: 0
Tutoriels: 0
Site web
Hors ligne
cfdev:
En effet passer le ptr est plus rapide que la valeur elle même, mais bon je ne pense pas que ce soit d'un gain significatif par rapport aux fonctions d'affichages.
Tu veux dire une référence.
L'avantage des référence (dans ce cas là), c'est que tu peux rendre ton code plus rapide sans changer le corps de ta méthode (tu a juste à changer sa définition)
Ce n'est qu'une bonne habitude à prendre. De plus, imagine qu'un programmeur utilise ta class dans un programme d'archivage, si l'utilisateur a 2 000 000 de fichiers (c'est fréquent) et que la barre est rafraîchie plusieurs fois par fichier, il y aura un réel gain.

xxltux:
Pour le A je pencherai sur un truc du style :
Code Cpp:

private int a;

public void setA(int a)
{
//Des tests pour eviter les conneries aussi
this->a = a;
}
En effet c'est ce que je voulais dire (avec un "setA(const int &a)" bien sûr ^^).
Imagine que l'utilisateur rentre comme valeur -10 pour le max et 20 pour le minimum, ça va beuger. Protéger ta class de l'utilisateur est très important. Normalement, il ne doit que se servir de méthode sans connaitre le fonctionnement interne de ta classe.
C'est l'encapsulation et c'est très important en POO (cf cours C++ du site du zero).

Si tu as besoin de plus d'infos, n'hésite pas !

Dernière modification par congelli501 (05-11-2008 14:44:17)


Mes programmes open sources !
On dit que la Grèce antique beaucoup d'influence sur notre culture... C'est vrai : la chute d'Athènes a eu lieu en 404 avant JC. Ca vous rappelle quelque chose ?
05-11-2008 16:32:57  Re: wxFastGauge #7
cfdev (Membre)
Lieu: Alpes de Haut Provence
Inscrit le : 08-11-2007
Messages: 127
Snippets: 4
Tutoriels: 0
Site web
Hors ligne
congelli:
Imagine que l'utilisateur rentre comme valeur -10 pour le max et 20 pour le minimum, ça va beuger. Protéger ta class de l'utilisateur est très important. Normalement, il ne doit que se servir de méthode sans connaitre le fonctionnement interne de ta classe.
C'est l'encapsulation et c'est très important en POO (cf cours C++ du site du zero).
Sachant que je viens du "C" et que j'ai appris alone, j'ai des lacunes certaines, comme par exemple l'histoire de la surcharge d'opérateur et autres...mais en tout cas l'encapsulation je sais ce que c'est :)

En effet c'est pour ça que j'ai fait une "Méthode" setValue(); et pas directement modifier un variable. Et la je vois que j'ai totalement zappé le Min et Max...oops :bad:
je vais corriger cela...
Les autres attributs les couleurs, le font, et l'orientation, je ne vois pas l'intérêt de créer des fonctions pour ça, l'utilisateur pourra mettre n'importe quoi ça fonctionnera pas comme il faut et puis c'est tout!

Par contre l'histoire de mettre const avant le contenu de la fonction alors la, je connaissais pas un brin :/

Merci de vos remarques

Dernière modification par cfdev (05-11-2008 16:39:02)


GNU Linux Power !
Slacker
05-11-2008 20:28:50  Re: wxFastGauge #8
congelli501 (Membre)
Inscrit le : 08-06-2008
Messages: 46
Snippets: 0
Tutoriels: 0
Site web
Hors ligne
cfdev:
Les autres attributs les couleurs, le font, et l'orientation, je ne vois pas l'intérêt de créer des fonctions pour ça, l'utilisateur pourra mettre n'importe quoi ça fonctionnera pas comme il faut et puis c'est tout
Tu fais comme tu veux mais bon, normalement c'est "mal".
- Personne ne pensera à utiliser ta class de cette façon (Pour voir de quoi était capable ton objet, j'ai regardé les méthodes.. et c'est tous).
- Lorsque l'utilisateur change les valeurs, il n'y a pas de rafraichissement.

Mes programmes open sources !
On dit que la Grèce antique beaucoup d'influence sur notre culture... C'est vrai : la chute d'Athènes a eu lieu en 404 avant JC. Ca vous rappelle quelque chose ?
06-11-2008 08:39:53  Re: wxFastGauge #9
cfdev (Membre)
Lieu: Alpes de Haut Provence
Inscrit le : 08-11-2007
Messages: 127
Snippets: 4
Tutoriels: 0
Site web
Hors ligne
congelli:
- Lorsque l'utilisateur change les valeurs, il n'y a pas de rafraichissement.
ouai pas directement c'est sur, il faut rafraichir la valeur... c'est assez pertinent comme argument :/
----------
Upgrade En version 1.1 !

+ Possibilité de changer la couleur des limites.

* Passage en méthode de toutes les fonctionnalités de wxFastGauge

Dernière modification par cfdev (17-11-2008 12:26:40)


GNU Linux Power !
Slacker
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Création de composants spécifiques
» wxFastGauge