Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 3074 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