Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 3093 razy

Każda kontrolka, czy okno programu dysponują zestawem metod, które są wywoływane gdy tylko zajdzie określone zdarzenie. Często też zdarza się konieczność nadpisania takiej metody w celu jej obsłużenia na własny sposób. W tym przypadku nawiązując do projektu rozpoczętego na stronie , gdzie obiekt edit klasy QTextEdit wymaga dostosowania rozmiaru za każdym razem, gdy rozmiar okna głównego programu zostanie zmieniony. W tym celu w klasie MainWindow należy zamieścić nagłówek metody wywoływanej przy zmianie okna głównego:

void resizeEvent(QResizeEvent *event) override;

W pliku mainwindow.cpp natomiast powinna znaleźć się ta metoda wraz z jej ciałem:

void MainWindow::resizeEvent(QResizeEvent *event){ QMainWindow::resizeEvent(event); // wywołanie bazowej klasy metody resizeEvent QRect rect = ui->centralWidget->geometry(); // kontrolka edit jest kontrolką potomną kontrolki centralWidget więc pobieram rozmiar tej kontrolki ui->edit->setGeometry(0, 0, rect.width(), rect.height()); // i ustawiam rozmiar edit-a }

Po takim zabiegu przy zmianie rozmiaru okna kontrolka QTextEdit dostosuje swój rozmiar do okna programu.

Widok okna po zastosowaniu obsługi zdarzenia resizeEvent
Rys. 1
Widok okna po zastosowaniu obsługi zdarzenia resizeEvent
Strony powiązane
strony powiązane
  1. doc.qt.io/qt-5/qwidget.html#resizeEvent - opis metody resizeEvent na stronie dokumentacji Qt
  2. doc.qt.io/qt-4.8/qtextedit.html - opis klasy QTextEdit na stronie dokumentacji Qt
Layout wykonany przez autora strony, wszelkie prawa zastrzeżone. Jakiekolwiek użycie części lub całości grafik znajdujących się na tej stronie bez pisemnej zgody jej autora surowo zabronione.