Search code examples
qtqmlqtquick2qtquickcontrols2

Qt Quick: How to get the current text from ComboBox


I try to get text from the current index from ComboBox. model.get(scale).text method doesn't work, it only gets the first index.

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
    }
}
}

Solution

  • Have fun.

    onClicked: {
      //var a=parseFloat(model.get(scale).text)
      scaletext.text = scale.currentText; 
    }