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

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

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 ;)

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.

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.

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1