从 C++ 获取 QML Editbox 的值

Nik*_*til 3 c++ qt qml qt-quick qtquick2

我用 QML 中的一些文本框创建了一个 QtQuick 应用程序。我想在我的 C++ 代码中使用这些文本框的值。那么如何从 C++ 代码中获取这些值呢?

Nej*_*jat 5

它可以是这样的:

QML 文件:

Item{
id: root

signal textChanged(string msg)

TextInput
{
    id: inputText
    anchors.horizontalCenter: root.horizontalCenter
    anchors.verticalCenter: root.verticalCenter

    text : ""
    inputMethodHints: Qt.ImhNoPredictiveText
    selectByMouse: true

    onAccepted: { 
        inputText.focus = false; 
        Qt.inputMethod.hide(); 
        root.textChanged(inputText.text); 
    }

 }
}
Run Code Online (Sandbox Code Playgroud)

?您可以将 qml 的信号连接到 cpp 中的某个插槽,例如:

QObject::connect((QObject *)viewer.rootObject(), SIGNAL(textChanged(QString)), this, SLOT(someSlot(QString)));
Run Code Online (Sandbox Code Playgroud)