Autor podstrony: Krzysztof Zajączkowski

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

Klasa QSpinBox odpowiedzialna jest za utworzenie kontrolki QSinBox, która umożliwia wprowadzanie wartości całkowitych z ustalonego przez programistę przedziału. Kontrolka ta posiada również dwa przyciski przewijania. Nadaje się więc ona do ustawiania wartości liczbowych całkowitych i z tego względu postanowiłem nieco rozbudować kod z poprzedniej strony Programowanie → Qt Creator GUI → Qt - kontrolka QTextEdit dodając możliwość zmiany rozmiaru czcionki. W tym celu konieczne jest załączenie pliku nagłówkowego QSpinBox w pliku mainwindow.h oraz dodanie do klasy MainWindow następującego pola:

QSpinBox *fontSize;

W konstruktorze klasy MainWindow warto utworzyć i odpowiednio zainicjalizować obiekt klasy QSpinBox co też i z najdzikszą rozkoszą czynię:

fontSize = new QSpinBox(); ui->mainToolBar->addWidget(fontSize); // podpinanie kontrolki pod pasek narzędziowy fontSize->setMinimum(6); // ustawiam minimalną wartość możliwą do wpisania fontSize->setMaximum(48); // ustawiam maksymalną wartość możliwą do wpisania fontSize->setValue(8); // ustawiam początkowy rozmiar czcionki QObject::connect(fontSize, SIGNAL(valueChanged(int)), this, SLOT(onFontSizeChanged(int))); // podłączam się pod sygnał valueChanged kontrolki QSpinBox

Jak widać w załączonym powyżej kodzie konieczne jest utworzenie slotu onFontSizeChanged(int) co również z najdzikszą rozkoszą czynię:

void MainWindow::onFontSizeChanged(int index){ ui->edit->setFontPointSize(qreal(index)); // ustawiam rozmiar czcionki w kontrolce QTextEdit }

Ostatnia rzecz, jaką trzeba zrobić to lekko zmodyfikować wcześniej utworzoną metodę setTextStyleButtonsState dodając następujący kod:

int size = ui->edit->fontPointSize(); // pobieram rozmiar czcionki fontSize->setValue(size ? size : 8); // jak nie jest równy 0 to go ustawia a jak jest to ustawiam domyślną wartość 8
Przykład zastosowanie kontrolki QSpinBox do zmiany rozmiaru czcionki w kontrolce QTextEdit
Rys. 1
Przykład zastosowanie kontrolki QSpinBox do zmiany rozmiaru czcionki w kontrolce QTextEdit
Strony powiązane
strony powiązane
  1. doc.qt.io/qt-5/qspinbox.html - opis klasy QSpinBox 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.