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ę:
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