FAQ Qt FAQ Qt Creator FAQ PyQt & PySide

FAQ QtConsultez toutes les FAQ

Nombre d'auteurs : 26, nombre de questions : 298, dernière mise à jour : 26 juillet 2017 

 
OuvrirSommaireBibliothèques complémentairesQwt 5

Qwt (Qt Widgets for Technical Applications) est une bibliothèque annexe à Qt, qui utilise cette dernière, et qui simplifie la création de widgets de mesure (courbes, graphiques, jauges, cadrans...). Cette bibliothèque, ainsi que toutes les informations la concernant, sont disponibles sur la page Web du projet.

Mis à jour le 7 mai 2012  par gulish

Lien : Qwt

Quelques images des exemples Qwt sont disponibles dans le chapitre "Screenshots" de la page Web de la bibliothèque. Elles sont assez représentatives du type de composants pouvant être créés, même si une personnalisation est toujours possible.

Mis à jour le 7 mai 2012  par gulish

Lien : Qwt

Les classes Qwt sont basées sur celles de Qt, et leur utilisation est relativement simple. De plus, les classes disponibles sont assez complètes, et permettent facilement de créer l'objet que l'on désire. Cependant, cette bibliothèque est moins intuitive que Qt, et la documentation la concernant est plutôt succincte. Il est nécessaire de connaître les bases de l'utilisation de Qt pour utiliser Qwt.

Mis à jour le 7 mai 2012  par gulish

Qwt est basé sur Qt, et il faut donc préalablement avoir installé le framework Qt. Il suffit ensuite de décompresser l'archive Qwt, modifier le fichier .pri (similaire au fichier .pro) selon vos besoins, puis d'exécuter qmake, puis make ou équivalents (nmake, cmake...).

Mis à jour le 7 mai 2012  par gulish

Les repères des courbes (QwtPlot) et les éléments de type "jauges" (QwtCompass, QwtDial, QwtKnob...) héritent tous de la classe QWidget. Il est donc facile de les ajouter, comme tout autre widget, dans le layout de votre application.

Mis à jour le 7 juillet 2009  par gulish

La classe principale pour la gestion des repères est QwtPlot. Son utilisation est très simple. Par défaut, seule la partie positive des axes x et y apparaît, mais cela est modifiable.

 
Sélectionnez
#include <QApplication>
#include <qwt_plot.h>

int main(int argc, char** argv)
{
    QApplication app(argc,argv);
    QwtPlot myPlot;
    myPlot.show();
    return app.exec();
}
Mis à jour le 2 janvier 2010  par gulish

On utilise la méthode setCanvasBackground (const QColor &c).

 
Sélectionnez
#include <QApplication>
#include <qwt_plot.h>

int main(int argc, char** argv)
{
    QApplication app(argc,argv);
    QwtPlot myPlot;
    myPlot.setCanvasBackground(Qt::white);
    myPlot.show();
    return app.exec();
}
Créé le 28 mai 2009  par gulish

Les courbes se créent grâce à la classe QwtPlotCurve. Cette classe permet une grande personnalisation de l'affichage (symboles des points, couleur, traçage ou non de ligne, etc.). Une courbe étant une suite de points, il faut renseigner une suite de points à QwtPlotCurve. Pour cela, on utilise la méthode setData(...), qui peut accepter différents arguments. La plus triviale est setData (const double *xData, const double *yData, int size), où xData représente un tableau de double, contenant toutes les abscisses des points de notre courbe, yData contient, lui, les ordonnées. Ainsi, notre premier point aura comme coordonnées [ xData[0],yData[0] ]. Le troisième paramètre, size, renseigne sur le nombre de points à afficher, en partant de zéro. Bien sûr, xData et yData doivent au moins contenir size éléments.

 
CacherSélectionnez

Vous remarquerez que les axes se sont automatiquement ajustés aux données.

Mis à jour le 7 mai 2012  par gulish

Il faut utiliser la méthode QwtPlotCurve::setPen().

 
CacherSélectionnez
Mis à jour le 7 mai 2012  par gulish

Il est inutile d'ajouter une multitude de courbes pour faire apparaître une grille sur notre repère. QwtPlotGrid permet d'ajouter facilement une grille à notre repère. De plus, cette grille s'adapte automatiquement aux nouvelles échelles, et peut être personnalisée.

 
CacherSélectionnez
Mis à jour le 7 mai 2012  par gulish

On peut facilement réaliser ce type de grille grâce aux méthodes QwtPlotGrid::enableX() et QwtPlotGrid::enableY().

 
CacherSélectionnez
Mis à jour le 2 janvier 2010  par gulish

Les axes peuvent être aisément personnalisés à l'aide des fonctions setAxisScale (axe,min,max,step) et setAxisTitle (axe,titre). Dans la majorité des cas, la grille s'ajuste automatiquement sur l'échelle du repère.

 
CacherSélectionnez
Mis à jour le 7 mai 2012  par gulish

Il existe une classe dédiée au zoom nommée QwtPlotZoomer. Elle permet de créer très simplement un outil de zoom, et d'autres fonctionnalités. On peut zoomer successivement sur une zone. Le zoom s'effectue en faisant un cliquer-glisser sur une zone du repère, le clic sur la molette permet de revenir au zoom précédent, et le clic droit permet de revenir au repère initial. La grille et les axes s'ajustent avec le zoom.

 
CacherSélectionnez
Mis à jour le 2 janvier 2010  par gulish

Pour intégrer le plug-in Qwt dans Qt Creator par exemple :

  1. Compiler Qwt et son plug-in en mode release (ou vérifier qu'ils le sont bien) ;
  2. Copier qwt.dll dans C:\Qt\version\bin ;
  3. Copier qwt_designer_plugin5.dll dans C:\Qt\version\bin\designer.

(Où version est le numéro de votre version de Qt.)

Il faut ensuite redémarrer Qt Creator et Qwt est maintenant intégré.

Créé le 7 mai 2012  par Jonathan Courtois

Il faut que Designer et/ou Qt Creator aient accès à qwt.dll (version release de la dll Qwt) et que le plugin qwt_designer_plugin.dll (version release toujours, c'est-à-dire celle installée par défaut) soit trouvable par Designer/Qt Creator. Une bonne façon de faire est :

  1. installer Qwt (réf. question ci-dessus). qwt.dll est ensuite accessible dans le PATH ;
  2. créer la variable d'environnement QT_PLUGIN_PATH avec pour valeur <chemin_d'installation>/plugins.

Attention, pour fonctionner, un plug-in doit être compilé avec le même compilateur que celui qui l'utilise. Donc par exemple si vous compilez Qwt avec MinGW, les binaires de Qt Creator étant livrés compilés avec MSVC, vous ne pourrez pas intégrer Qwt à son Designer. Il faudra donc recompiler Qt Creator en MinGW.

Créé le 7 mai 2012  par Troudhyl

Il est possible que le placement de la macro Q_OBJECT dans la section privée d'une classe dérivée de l'une que fournit Qwt n'ait aucun effet notable. Dans ce cas, pour pouvoir disposer du système de métaobjets dans une classe dérivée d'une classe de Qwt, et donc pour pouvoir profiter des signaux, des slots, des propriétés et de tous les autres dispositifs mis à disposition, il sera nécessaire d'ajouter la ligne suivante dans le fichier .pro :

 
Sélectionnez
DEFINES += QWT_DLL

Ce problème n'apparaît que sous Windows, cette solution ne s'applique donc qu'à ce système.

Créé le 7 mai 2012  par Louis du Verdier
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 - 2017 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.