Program do rysowania linii - tworzenie lini, które nie znikają

Program do rysowania linii - tworzenie lini, które nie znikają

Wątek przeniesiony 2014-02-03 11:45 z C/C++ przez ŁF.

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 20
0

Witam.

Otóż mam zadanie: napisać programik, który ma narysować linię. Nic trudnego i wymagającego, jednak.

Program ten, ma narysować linię, a potem umożliwić narysowanie drugiej, trzeciej, tysięcznej, bez skasowania poprzedników.

Jak wiadomo, rysunki pojawiają się na Widget'cie po jego ,,updejcie" *this->update(); lub this->repaint();
Przez co narysowana linia kasuje się i powstaje druga.

Podobno mam to zrobić, korzystając z drugiego Widget'u.

Czy ktoś pomoże mi zrozumieć w czym tkwi problem, oraz wskaże drogę niczym wskaźnik ? ;|

Dzięki wielkie ;)

AN
  • Rejestracja: dni
  • Ostatnio: dni
1

Spróbuj tak:

Utwórz obiekt klasy "QImage", który jest obrazem i zarazem można go wyświetlić na formie.
Następnie w widgecie wyświetlającym obraz (może to być klasy "QLabel") wskazujesz ten właśnie obiekt jako obraz do wiświetlenia.

Kopiuj
ui->Etykieta->setPixmap(QPixmap::fromImage(ObrazQImage));

Potem rysujesz co chcesz właśnie na tym obiekcie klasy QImage.

Jak się nie będzie wyświetlać na bieżąco, to robisz refresh lub repaint itp. w momencie, gdy obraz ma się zaktualizować na ekranie.

MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
1

No i w czym problem? Pierwsze durne rozwiązanie to rysowanie po QPixmap'ie a widget rysuje całą pixmapę.
Ja zrobiłbym to wektorowo. W zdarzeniach myszki zapamiętujesz krzywą, jej dane zapamiętujesz w QList i wywołujesz update(obszarDoOdswieżenia) .
W painEvent robisz rysowanie zawartości tej listy.

PS. by zrozumieć twój problem należałoby zobaczyć twój kod, a nie ogólnikowy opis.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.