Wśród elementów formularza okna interfejsu użytkownika szczególne znaczenie mają pola wyboru lub wprowadzania danych. Przetwarzanie ustawionych wartości często musi być natychmiastowe. Dlatego deweloper musi otrzymywać informacje o wszelkich zmianach w oknach. W różnych sytuacjach podczas odczytywania wartości pola należy wziąć pod uwagę konkretny typ danych i zakres elementu formularza.
Instrukcje
Krok 1
Podczas tworzenia aplikacji z biblioteką programistyczną Qt formularze okienne są zwykle tworzone z widżetów (klasa QWidget) lub okien dialogowych (QDialog). Elementy do wyboru lub wprowadzania danych są dodawane do obiektów określonych klas i są wizualnie umieszczane w standardzie lub oknie dialogowym.
Krok 2
Użyj klasy QComboBox do pracy z listą rozwijaną. Jego widoczne pole robocze może być aktywne do wprowadzania danych lub zablokowane. Jeśli użytkownik jest w stanie wprowadzić wartość w polu, można ją uzyskać, odwołując się do obiektu listy. Przykładowy kod: QComboBox m_comb; wynik QString; wynik = m_comb.currentText (); W tym przypadku obiekt m_comb używający metody currentText () zwraca bieżącą wartość górnego pola i można ją wprowadzić lub wybrać z listy rozwijanej lista. Zmienna łańcuchowa wynik zawiera wartość z widocznego pola roboczego pola kombi.
Krok 3
Jednak wprowadzony typ danych może być również liczbowy. Aby przekonwertować wartości ciągu na wymagany typ, wykonaj jedną z następujących operacji: double resD = wynik.toDouble (); float resF = wynik.toFloat (); int resI = wynik.toInt (); Tutaj wynikowa wartość pola będzie przechowywana w zmiennej resD, ale już w podwójnej, w resF - wartość zmiennoprzecinkowa, aw resI - wartość int integer.
Krok 4
Używając jednowierszowego edytora tekstu QLineEdit jako elementu wprowadzania danych, pobierz potrzebne informacje za pomocą następującego wpisu: wynik = m_edit.text (). W tym przypadku obiekt m_edit, korzystając z funkcji text(), zwraca w polu wartość ciągu wprowadzoną przez użytkownika.
Krok 5
Element QListBox może pełnić podobną funkcję w formie okienkowej, dostęp do wprowadzonych danych dla tego obiektu jest również podobny do wcześniej określonego: m_list.currentText().
Krok 6
Uzyskując dostęp do wszystkich instancji opisanych klas, musisz mieć odpowiednie prawa dostępu, ponieważ wywoływanie prywatnych metod i obiektów jest niemożliwe z funkcji firm trzecich. Rozważane metody uzyskiwania wartości pola mają status otwarty.