2009-09-29 12 views
22

Muszę zaimplementować niektóre działki jak that lub that w mojej aplikacji, może to być nawet coś podobnego.Tworzenie działki w Qt

Zrobiłem wyszukiwanie na stronie Qt bez postępu, i zobaczyłem pakiet Qwt, ale nic podobnego tam.

Wszelkie pomysły?

+0

Oto [odpowiedź] (https://stackoverflow.com/questions/7800460/how-do-you-plot-points-in-qt/7841265#7841265) z kodem źródłowym do wykreślania punktów w QGraphicsView bardzo łatwo (11 linii kodu). Wygląda na to, że nie robi tego po prostu z pudełka, ale jest tak dlatego, że Graphics View Framework jest o wiele potężniejszy niż standardowy malarz. – phyatt

Odpowiedz

24

Gorąco polecam Qwt.

Qwt jest starszą, dobrze udokumentowaną biblioteką i, jak sądzę, można śmiało powiedzieć, standardowe rozwiązanie do implementowania wykresów i innych widżetów wyświetlaczy i kontrolek w Qt. Jeśli potrzebujesz wykresów 3D, spróbuj QwtPlot3D.

+1

Co powiesz na [QCustomPlot] (http://www.qcustomplot.com/)? Teraz wydaje się lepszą opcją. – Isaac

+1

QCustomPlot pozwala na GPL lub komercyjne. Qwt używa licencji LGPL. To jest coś, co należy wziąć pod uwagę w oparciu o projekt, nad którym pracujesz. – rbaleksandar

2

Qt nie obsługuje renderowania po wyjęciu z pudełka.

Najbardziej podstawowym rozwiązaniem jest użycie QGraphicsView. Po prostu wyrenderuj fabułę za pomocą różnych przedmiotów.

Oprócz tego można śledzić numer this thread. Zawiera kilka wskaźników do kreślenia frameworku, ale nie wiem, jakie one są użyteczne i czy nadal są obsługiwane w Qt 4.x.

8

Używam do tego Qwt. Sztuką jest użycie funkcji krokowej (patrz ostatni przykład tego link) i przesunięcie danych o 0,5, tak aby paski były wycentrowane do tyknięć. Oto przykład tego, co można uzyskać za pomocą funkcji mieszania alfa i antyaliasingu: my histogram. Mam nadzieję, że zrobisz jeszcze lepiej ;-)

7

Jako alternatywę dla Qwt można również rozważyć qt-plotting-widget, co może być prostszą opcją.

+3

To jest teraz nazywane QCustomPlot: http://www.qcustomplot.com – AstroFloyd

30

Uwielbiam QCustomPlot, który jest biblioteką Qt C++. Koncentruje się na tworzeniu dobrze wyglądających, jakościowych wykresów 2D, wykresów i wykresów, a także zapewnia wysoką wydajność w aplikacjach do wizualizacji w czasie rzeczywistym. Możesz go pobrać tutaj: http://www.qcustomplot.com/

1

QCustomPlot jest naprawdę łatwy do rozpoczęcia i istnieje wiele rodzajów kartezjańskich działek, które możesz zrobić. Powiedziawszy to, pod względem wydajności nie jest tak dobra, jak inne osoby, jeśli zamierzasz wyłapać duże serie czasowe naraz. Wewnętrznie używa QMap do przechowywania danych, co oznacza, że ​​dla każdego punktu danych, który wstawiasz lub usuniesz podczas zapełniania, pojawi się jedna alokacja/zwolnienie pamięci, aby dodać punkt danych do mapy. Aby uzyskać więcej informacji, patrz this post.

Inną rzeczą, której nie podoba mi się to, że nawet w przypadku prostych działek używa wewnętrznie struktury QCPData, która przechowuje 6 podwójnych wartości, gdy normalnie potrzebujesz dwóch (x i y). Oznacza to, że trzykrotnie zwiększa ilość pamięci potrzebnej do wyświetlenia szeregu czasowego.

2

Wykresy Qt 5.6 teraz includesQt 2.1, które obsługuje wykresy słupkowe (jak również 7 innych gatunków).

+0

Czy jest dostępny w dystrybucji open-source? Nie mogę korzystać z modułu "charts". –

+1

@VioletGiraffe - Jest dostępny, ale nie jest dołączony do dystrybucji open-source w wersji 5.6. ("Użytkownicy open source mogą budować moduł ze źródeł.") Aby uzyskać pomoc dotyczącą budowania z otwartym kodem źródłowym, zobacz ten wątek: https://forum.qt.io/topic/66946/how-to-build-qt- wykresy-2-1 na oknach-7 –