Bonjour à tous,

Après plusieurs demandes sur "comment créer un histogramme avec Qwt ?", et bien que l'exemple fourni dans le package soit bien fait, j'ai crée une petite classe simplifiant la création d'histogramme.

Cette classe est tirée à 95% du code de l'exemple fournit avec qwt. Le fichier "QwtRegularHistogram.h" contient toute la classe (le code n'est pas commenté, et pas très bien présenté) et permet de créer/afficher simplement un histogramme à partir d'un QVector<double> ou d'une QList<double>. La classe QwtRegularHistogram hérite de QwtPlot ( et donc de QWidget).

Voici un petit exemple d'utilisation de la classe :
Code :Sélectionner tout -Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
#include "QwtRegularHistogram.h"
#include <QApplication>
int main(int argc, char **argv)
{
    QApplication a(argc, argv);
 
 
	//random values 1
	QList<double> values1;
	values1.append(7);
	for(int i = 1; i <20; i++)
		values1.append((values1.at(i-1)+3));
 
	//random values 2
	QList<double> values2;
	values2.append(7);
	for(int i = 1; i <20; i++)
		values2.append((values2.at(i-1)-3));
 
	QwtRegularHistogram histo1("Histo1");
	histo1.setItemColor(Qt::blue);//on peut modifier la couleur
	histo1.setData(values1);//on met à jour les valeurs(QList<double> ou QVector<double>)
 
	QwtRegularHistogram histo2("Histo2");
	histo2.setItemColor(Qt::red);//on peut modifier la couleur
	histo2.setData(values2);//on met à jour les valeurs(QList<double> ou QVector<double>)
 
	histo1.show();
	histo2.show();
 
	return a.exec(); 
}


Je précise que dérivant de QwtPlot, on peut utiliser les mêmes fonctions pour mettre des titres aux axes, ou ce genre de choses ...

En espérant que ça puisse aider,

G.