2009-09-29 6 views
22

Je dois mettre en œuvre un certain complot comme that ou that dans mon application, il peut être même quelque chose de similaire.Faisant terrain en Qt

J'ai fait une recherche sur le site Web de Qt sans progrès, et j'ai vu le paquet Qwt mais rien de semblable.

Des idées?

+0

Voici une [réponse] (https://stackoverflow.com/questions/7800460/how-do-you-plot-points-in-qt/7841265#7841265) avec le code source pour tracer des points dans un QGraphicsView très facilement (11 lignes de code). Il ne semble pas que cela soit fait au départ, mais c'est juste parce que le Graphics View Framework est beaucoup plus puissant qu'un peintre standard. – phyatt

Répondre

24

Je recommande vivement Qwt.

Qwt est une bibliothèque mature et bien documentée et, je pense qu'il est juste de dire, la solution standard pour implémenter des tracés et d'autres widgets d'affichage et de contrôle dans Qt.

Si vous avez besoin de tracés 3D, essayez QwtPlot3D.

+1

Que diriez-vous de [QCustomPlot] (http://www.qcustomplot.com/)? Cela semble être une meilleure option maintenant. – Isaac

+1

QCustomPlot autorise GPL ou commercial. Qwt utilise la licence LGPL. C'est quelque chose que vous devez considérer en fonction du projet sur lequel vous travaillez. – rbaleksandar

2

Qt ne supporte pas le traçage de la boîte.

La solution la plus basique consiste à utiliser QGraphicsView. Rendez simplement votre intrigue en utilisant les différents éléments. En plus de cela, vous pouvez suivre this thread. Il contient un couple de pointeur vers les frameworks de traçage mais je ne sais pas s'ils sont utiles ou s'ils sont toujours supportés dans Qt 4.x.

8

J'utilise Qwt pour cela. L'astuce consiste à utiliser une fonction d'étape (voir le dernier exemple par ce link), et de décaler les données de 0,5, de sorte que les barres seront centrées en ticks. Voici un exemple de ce que vous pouvez obtenir avec l'alpha blending et l'anti-aliasing activés: my histogram. J'espère que vous ferez mieux encore ;-)

7

En alternative à Qwt, vous pouvez également envisager qt-plotting-widget, ce qui peut être une option plus simple.

+3

Ceci est maintenant appelé QCustomPlot: http://www.qcustomplot.com – AstroFloyd

30

J'aime QCustomPlot qui est une bibliothèque Qt C++. Il se concentre sur la réalisation de graphes, graphes et diagrammes 2D de bonne qualité et de qualité publication, ainsi que de hautes performances pour les applications de visualisation en temps réel. Vous pouvez l'obtenir ici: http://www.qcustomplot.com/

1

QCustomPlot est vraiment facile à démarrer et il y a beaucoup de types de parcelles cartésiennes que vous pouvez faire. Cela dit, la performance n'est pas aussi bonne que celle des autres si vous avez l'intention de tracer de grandes séries chronologiques en même temps. Il utilise en interne un QMap pour stocker les données, ce qui signifie que pour chaque point de données que vous insérez ou supprimez lors du remplissage, il y aura une allocation/libération de mémoire pour ajouter le point de données à la carte. Voir this post pour plus d'informations.

Une autre chose que je n'aime pas est que même pour les parcelles simples qu'il utilise en interne une struct QCPData qui stocke 6 doubles valeurs lorsque vous auriez normalement besoin de deux (x et y). Autrement dit, il triple la quantité de mémoire dont vous avez besoin pour afficher une série chronologique.

2

Qt 5.6 maintenant includesgraphiques Qt 2.1, qui prend en charge les graphiques à barres (ainsi que 7 autres types).

+0

Est-il disponible dans la distribution open-source? Je n'arrive pas à utiliser le module 'charts'. –

+1

@VioletGiraffe - Il est disponible, mais n'est pas inclus avec la distribution open-source de 5.6. ("Les utilisateurs open source peuvent construire le module à partir des sources.") Pour de l'aide sur la construction avec open source, voir ce fil: https://forum.qt.io/topic/66946/how-to-build-qt- charts-2-1-on-windows-7 –

Questions connexes