2009-09-29 14 views
22

Ho bisogno di implementare alcuni grafici come that o that nella mia app, può essere anche qualcosa di simile.Creazione trama in Qt

Ho effettuato una ricerca sul sito Web Qt senza alcun progresso e ho visto il pacchetto Qwt ma niente di simile lì.

Qualche idea?

+0

Ecco una [risposta] (https://stackoverflow.com/questions/7800460/how-do-you-plot-points-in-qt/7841265#7841265) con codice sorgente per tracciare i punti in un QGraphicsView molto facilmente (11 righe di codice). In un primo momento non sembra che sia fuori dagli schemi, ma è solo perché Graphics View Framework è molto più potente di un pittore standard. – phyatt

risposta

24

Raccomando fortemente Qwt.

Qwt è una libreria matura e ben documentata e, penso sia giusto dire, la soluzione standard per l'implementazione di grafici e altri widget di visualizzazione e controllo in Qt.

Se sono necessari grafici 3D, provare QwtPlot3D.

+1

Cosa ne pensi di [QCustomPlot] (http://www.qcustomplot.com/)? Sembra essere l'opzione migliore ora. – Isaac

+1

QCustomPlot consente GPL o commerciale. Qwt utilizza la licenza LGPL. Questo è qualcosa che devi considerare in base al progetto su cui stai lavorando. – rbaleksandar

2

Qt non ha supporto per il disegno fuori dalla scatola.

La soluzione più semplice è utilizzare QGraphicsView. Rendi semplicemente la tua trama usando i vari oggetti.

Oltre a ciò, è possibile seguire this thread. Contiene un paio di puntatori per tracciare i framework, ma non so quanto siano utili o se siano ancora supportati in Qt 4.x.

8

Sto usando Qwt per quello. Il trucco consiste nell'utilizzare una funzione di passaggio (vedere l'ultimo esempio di questo link) e spostare i dati di 0,5, in modo che le barre siano centrate sulle zecche. Ecco un esempio di ciò che è possibile ottenere con alpha blending e anti-aliasing abilitato: my histogram. Spero, lo farai ancora meglio ;-)

7

In alternativa a Qwt si può anche considerare qt-plotting-widget che potrebbe essere un'opzione più semplice.

+3

Questo è ora chiamato QCustomPlot: http://www.qcustomplot.com – AstroFloyd

30

Amo QCustomPlot che è una libreria Qt C++. Si concentra sulla realizzazione di diagrammi 2D, grafici e grafici di qualità di pubblicazione di buona qualità e offre anche prestazioni elevate per le applicazioni di visualizzazione in tempo reale. Puoi ottenerlo qui: http://www.qcustomplot.com/

1

QCustomPlot è davvero facile da iniziare e ci sono molti tipi di trama cartesiana che puoi fare. Detto questo, per quanto riguarda le prestazioni non è buono come dicono gli altri se si intende elaborare grandi serie temporali tutte contemporaneamente. Utilizza internamente un QMap per archiviare i dati, il che significa che per ogni punto di dati inserito o rimosso durante la compilazione, ci sarà un'allocazione/rilascio di memoria per aggiungere il punto dati alla mappa. Vedere this post per ulteriori informazioni.

Un'altra cosa che non mi piace è che anche per i grafici semplici che utilizza internamente una struttura QCPData che memorizza i 6 valori doppi quando si sarebbe normalmente bisogno di due (x e y). Cioè, triplica la quantità di memoria necessaria per visualizzare una serie storica.

2

Qt 5.6 ora includesQt 2.1 Grafici, che supporta i grafici a barre (così come altri tipi 7).

+0

È disponibile nella distribuzione open-source? Non riesco a essere in grado di usare il modulo 'charts'. –

+1

@VioletGiraffe - È disponibile, ma non è incluso nella distribuzione open-source di 5.6. ("Gli utenti open source possono creare il modulo dai sorgenti.") Per qualche aiuto con la creazione con open source, vedere questo thread: https://forum.qt.io/topic/66946/how-to-build-qt- grafici-2-1-on-windows-7 –