2009-09-29 15 views
22

Necesito implementar alguna trama como that o that en mi aplicación, puede ser incluso algo similar.Haciendo una trama en Qt

Hice una búsqueda en el sitio web de Qt sin progreso, y vi el paquete Qwt pero nada similar allí.

¿Alguna idea?

+0

Aquí hay una [respuesta] (https://stackoverflow.com/questions/7800460/how-do-you-plot-points-in-qt/7841265#7841265) con el código fuente para trazar puntos en un QGraphicsView muy fácilmente (11 líneas de código). Al principio no parece que salga de la caja, pero es solo porque Graphics View Framework es mucho más poderoso que un pintor estándar. – phyatt

Respuesta

24

Recomiendo encarecidamente Qwt.

Qwt es una biblioteca madura y bien documentada y, creo que es justo decirlo, la solución estándar para implementar gráficos y otros widgets de visualización y control en Qt.

Si necesita trazados en 3D, intente QwtPlot3D.

+1

¿Qué tal [QCustomPlot] (http://www.qcustomplot.com/)? Parece ser una mejor opción ahora. – Isaac

+1

QCustomPlot permite GPL o comercial. Qwt usa la licencia LGPL. Esto es algo que debe considerar en función del proyecto en el que está trabajando. – rbaleksandar

2

Qt no tiene soporte para trazado fuera de la caja.

La solución más básica es usar QGraphicsView. Simplemente represente su trama usando los diversos elementos.

Aparte de eso, puede seguir this thread. Contiene un par de punteros para trazar marcos, pero no sé qué tan útiles son o si siguen siendo compatibles con Qt 4.x.

8

Estoy usando Qwt para eso. El truco es usar una función de paso (ver el último ejemplo en este link), y cambiar los datos por 0.5, de modo que las barras se centrarán en ticks. Aquí hay un ejemplo de lo que puede obtener con alfa blending y anti-aliasing activado: my histogram. Espero, lo harás aún mejor ;-)

7

Como alternativa a Qwt, también podría considerar qt-plotting-widget que puede ser una opción más simple.

+3

Esto ahora se llama QCustomPlot: http://www.qcustomplot.com – AstroFloyd

30

Me encanta QCustomPlot que es una biblioteca de Qt C++. Se enfoca en hacer tramas, gráficos y gráficos en 2D de buen aspecto y calidad de publicación, y también tiene un alto rendimiento para aplicaciones de visualización en tiempo real. Puede obtenerlo aquí: http://www.qcustomplot.com/

1

QCustomPlot es realmente fácil de empezar y hay muchos tipos de planos cartesianos que puede hacer. Habiendo dicho eso, en lo que respecta al rendimiento, no es tan bueno como dicen otras personas si pretendes trazar grandes series temporales de una sola vez. Utiliza internamente un QMap para almacenar los datos, lo que significa que para cada punto de datos que inserte o elimine al rellenar, habrá una asignación/liberación de memoria para agregar el punto de datos al mapa. Ver this post para más información.

Otra cosa que no me gusta es que incluso para parcelas simples que utiliza internamente una estructura QCPData que almacena valores de 6 dobles cuando normalmente necesitan dos (x y y). Es decir, triplica la cantidad de memoria que necesita para mostrar una serie temporal.

2

Gráficos Qt 5.6 ahora includesQt 2.1, que apoya los gráficos de barras (así como otros tipos 7).

+0

¿Está disponible en distribución de código abierto? Parece que no puedo usar el módulo 'charts'. –

+1

@VioletGiraffe: está disponible, pero no se incluye con la distribución de código abierto de 5.6. ("Los usuarios de código abierto pueden construir el módulo desde las fuentes"). Para obtener ayuda con la compilación con código abierto, consulte este hilo: https://forum.qt.io/topic/66946/how-to-build-qt- gráficos-2-1-en-windows-7 –

Cuestiones relacionadas