-3
Ich versuche, Text aus dem aktuellen Index von ComboBox zu bekommen. model.get(scale).text
Methode funktioniert nicht, es erhält nur den ersten Index.Qt Quick: Wie bekomme ich den aktuellen Text von ComboBox
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.0
ApplicationWindow {
visible: true
width: 200
height: 200
title: qsTr("Hello World")
Column{
anchors.horizontalCenter: parent.horizontalCenter
id:optionsColumn
spacing: 5
anchors.fill : parent
anchors.topMargin : 15
anchors.bottomMargin : 15
anchors.leftMargin :15
anchors.rightMargin : 15
ComboBox {
id: scale
anchors.horizontalCenter: parent.horizontalCenter
editable: true
inputMethodHints: Qt.ImhDigitsOnly
currentIndex: 1
model: ListModel {
id: model
ListElement { text: "500" }
ListElement { text: "1000" }
ListElement { text: "2000" }
ListElement { text: "5000" }
ListElement { text: "10000" }
ListElement { text: "25000" }
}
onAccepted: {
id:maccepted
if (find(editText) === -1)
model.append({text: editText})
}
}
Button{
id:showtext
text: "Scale to text"
anchors.horizontalCenter: parent.horizontalCenter
onClicked: {
var a=parseFloat(model.get(scale).text)
scaletext.text=a
}
}
TextField{
id:scaletext
anchors.horizontalCenter: parent.horizontalCenter
readOnly: true
}
}
}
Sie sollten Ihr Beispiel richtig machen. 'ComboBox.accepted' wurde in' QtQuick.Controls 2.2' eingeführt und ist im importierten '2.0' nicht verfügbar. – derM
Was genau erwartest du mit' model.get (scale) .text'? 'model.get()' erwartet einen 'int'-Index, übergeben Sie ein' Q (t) -Objekt'. – derM
Ich erwartete, dass es den aktuellen Text aus der Combobox bekommt. Ich habe es aus Qt-Dokumenten referenziert. Jetzt funktioniert scale.currentText wie erwartet. –