Unter den Elementen des Fensterformulars der Benutzeroberfläche sind Auswahl- oder Dateneingabefelder von besonderer Bedeutung. Die Verarbeitung der eingestellten Werte muss oft augenblicklich erfolgen. Daher muss der Entwickler Informationen über jede Änderung in den Fenstern erhalten. In verschiedenen Situationen müssen Sie beim Lesen eines Feldwerts den spezifischen Datentyp und den Umfang des Formularelements berücksichtigen.
Anweisungen
Schritt 1
Bei der Entwicklung von Anwendungen mit der Qt-Programmierbibliothek werden Fensterformulare normalerweise aus Widgets (QWidget-Klasse) oder Dialogen (QDialog) erstellt. Elemente zur Auswahl oder Dateneingabe werden zu Objekten der angegebenen Klassen hinzugefügt und befinden sich visuell auf einer Norm oder einem Dialogfeld.
Schritt 2
Verwenden Sie die Klasse QComboBox, um mit der Dropdown-Liste zu arbeiten. Sein sichtbares Arbeitsfeld kann für die Dateneingabe aktiv oder gesperrt sein. Wenn der Benutzer einen Wert in das Feld eingeben kann, können Sie ihn über das Listenobjekt abrufen. Beispielcode: QComboBox m_comb; QString result; result = m_comb.currentText(); Hier gibt das m_comb-Objekt mit der Methode currentText() den aktuellen Wert des obersten Felds zurück und kann entweder eingegeben oder in der Dropdown-Liste ausgewählt werden aufführen. Die Stringvariable result enthält den Wert aus dem sichtbaren Arbeitsfeld der Combobox.
Schritt 3
Der eingegebene Datentyp kann jedoch auch numerisch sein. Um Stringwerte in den erforderlichen Typ zu konvertieren, führen Sie eine der folgenden Operationen aus: double resD = result.toDouble (); float resF = result.toFloat (); int resI = result.toInt (); Hier wird der resultierende Feldwert in der Variablen resD gespeichert, jedoch bereits in einem Double, in resF - einem Float-Wert und in resI - einem Int-Integer-Wert.
Schritt 4
Wenn Sie den einzeiligen Texteditor QLineEdit als Dateneingabeelement verwenden, erfassen Sie die benötigten Informationen mit dem folgenden Eintrag: result = m_edit.text (). Hier gibt das m_edit-Objekt mit der Funktion text() den vom Benutzer in das Feld eingegebenen Zeichenfolgenwert zurück.
Schritt 5
Ein QListBox-Element kann eine ähnliche Funktion in einer Fensterform ausführen, der Zugriff auf die eingegebenen Daten für dieses Objekt ist ebenfalls ähnlich dem zuvor angegebenen: m_list.currentText().
Schritt 6
Beim Zugriff auf alle Instanzen der beschriebenen Klassen müssen Sie über die entsprechenden Zugriffsrechte verfügen, da der Aufruf privater Methoden und Objekte aus Fremdfunktionen nicht möglich ist. Die betrachteten Methoden zum Abrufen des Feldwerts haben einen offenen Status.