QT ResizeEvent w "Paincie"

0

Witam.
Mam pewien problem otóż mam do napisania amatorskiego paint'a, wszystko już zrobiłem oprócz jednej rzeczy.. Otóż mam zrobić dwie opcje powiększania okna:

  1. Wygląda to tak, że gdy zmniejszam/zwiększam rozmiar okna obraz jest wypełniany na biało i rozszerzany.
  2. Opcja to taka, że z obrazem się nic nie dzieje, po prostu zostaje taki jaki był.. No i tu mam kłopot, bo 1 opcję zrobiłem natomiast z drugą mam problem.. Próbowałem z drawImage, nie daje nic.

To pierwsza opcja, podpowiedzcie jak się za to zabrać aby i druga zadziałała:

void drawingPlace::resizeEvent(QResizeEvent *event)
{
    QImage newDraw(event->size(), QImage::Format_RGB32);
    newDraw.fill(Qt::white);
    mDraw = newDraw;
    this->update();
}
0

Źle to robisz.
QImage powinien być polem twojej klasy. To na nim masz wykonywać wszystkie operacje rysowania, a następnie rysować go na oknie.
Co do zachowania przy zmianie rozmiaru okna, musisz sobie zadać pytanie co według ciebie jest prawidłowym/oczekiwanym zachowaniem?

  • jeśli obraz jest za mały, to przesunąć go:
    -- do środka
    -- do lewego górnego rogu
    -- gdzie indziej?
  • a może powinieneś powiększać QImage i nową przestrzeń wypełniać na biało
  • co jeśli okno jest mniejsze od obrazu?
0

Jest polem mojej klasy. Tutaj po prostu tworzę nową bitmape, wypełniam i wysyłam do tej, która jest polem.
Na razie chcę aby obrazek został tam gdzie był. Ew. dodał scroolbary albo go ucinał. Na razie chcę aby cokolwiek zostało.

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