In Qt kann ich das selected text
von a QComboBox
mithilfe der
combobox->currentText()
Methode abrufen. Wie kann ich das bekommen selected value
?
Ich suchte nach Hilfe, konnte aber keine Methode finden, currentData()
die ich erwartet hatte. Ich konnte nur findencombobox->currentIndex()
Gibt es eine intelligentere Möglichkeit, dies zu tun als combobox->itemData(combobox->currentIndex())
?
Update: Dies ist ab Qt 5 nicht mehr erforderlich. Eine currentData()
Methode wurde hinzugefügt: http://doc.qt.io/qt-5/qcombobox.html#currentData-prop
combobox->itemData(combobox->currentIndex())
illegal !!! Warum ?currentIndex = -1
. Es werden entweder die Daten aus dem letzten Index zurückgegeben oder ein Fehler ausgelöst, wenn die QComboBox leer ist.Dieser kann den Text des aktuellen Index erhalten:
quelle
currentText
ist das, was das OP bereits weiß ...Sie können QVariant-Daten für alle Elemente festlegen und dann den Wert bei Bedarf abrufen.
Für diese Situation gibt es einen Beispielcode:
Übrigens, ich glaube, ich habe Ihre Frage falsch verstanden. Ich denke, die Art und Weise, wie Sie Daten erhalten, ist klug genug?
quelle
Die Mitgliedsfunktion QComboBox :: currentData wurde hinzugefügt, seit diese Frage gestellt wurde. Siehe dieses Commit
quelle
Ich hatte das gleiche Problem
Ich habe gelöst durch
quelle
Dies ist mein OK-Code in QT 4.7:
quelle
Ich bin erstaunt, dass es kein aktiviertes Signal gibt und das gleiche Problem habe. Ich habe es gelöst, indem ich eine Unterklasse von QComboBox erstellt habe. Ich denke, es ist besser zu vermeiden, direkt auf das Objekt zugreifen und seine Funktionen aufrufen zu müssen, da dies eine engere Kopplung bedeutet und gegen die Philosophie von Qt verstößt. Also hier ist die Klasse, die ich gemacht habe und die für mich funktioniert.
Und die Umsetzung
quelle
Ich hatte das Problem und
löste dies.
quelle
Wenn Sie QGIS-Plugins entwickeln, dann einfach
quelle
ich war das
Sie werden sehen, dass die QStringList mit dem Namen _dirs wie ein Array aufgebaut ist, auf dessen Mitglieder Sie über einen Index bis zu dem von _dirs.count () zurückgegebenen Wert zugreifen können.
quelle
Die Frage ist alt, aber vielleicht braucht jemand eine tatsächliche Antwort.
In QGIS 3.4 können Sie den Wert
QComboBox
mit der Methode abrufencurrentData()
.Beispiel:
comboBox.currentData()
Link: https://doc.qt.io/qt-5/qcombobox.html#currentData-prop
quelle
Ich weiß, dass ich sehr spät bin, aber für diejenigen, die dieses Problem noch haben, kann es leicht gelöst werden. Ich benutze Qt 5.3 und es funktioniert gut. Keine Notwendigkeit, eine Funktion oder all das zu erstellen.
und es funktioniert ! Ich hoffe es hilft !
quelle
Ich bestätige, dass dies am einfachsten ist:
quelle
QComboBox::currentText()
ein zurückQString
? Wie kommst du zu einem vernünftigenint
? Und was möchten Sie mit Ihrem Parameter machenint index
?