我正在尝试将用户输入从 qml TextField 转移到 c ++ ,但只有在文本属性值被硬编码时才能使用 >(const值)。
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
QObject *rootObject = engine.rootObjects().first();
QObject *serverField1 = rootObject->findChild<QObject*>("serverField1");
qDebug() << serverField1->property("text"); //Here I expect to get user input
ApplicationWindow {
id: applicationWindow
visible: true
width: 300
height: 550
TextField {
id: serverField1
objectName: "serverField1"
width: 200
height: 110
// text: "hardcoded value" //If text is const value, qDebug will get data from this property
}
}
答案 0 :(得分:0)
当您显示窗口时,您要求显示session.run()
的文本,因此您将获得的是您最初设置的文本,您应该做的就是每次更改时都会获得该文本。我认为你有一些类会处理那些数据的处理,该类将被称为run_values
,它必须从TextField
继承,以便它可以有一个qproperty并嵌入该类的对象通过Backend
进行QML,因此每次更改QObject
中的文字时,也会更改setContextProperty
类对象中的文字。
<强>的main.cpp 强>
QML
<强> main.qml 强>
Backend
<子> 您可以在以下link中找到完整的代码。 子>