Ich versuche, den Wert des TextField an einen String übergeben, ich glaube, die Quelle ist korrekt, aber wenn ich den "Wert" in das TextField einfügen und klicken Sie auf die Schaltfläche, gibt nichts zurück, aber wenn ich dies festlegen Wert in TextField {Text: "Beispiel"}, es gibt zurück: "Beispiel", irgendwelche Ideen?Warum erhält mein QString nicht den Wert des TextFields?
FirstPage.qml
Item {
Rectangle {
anchors.fill: parent
ColumnLayout {
id: layoutLogin
anchors.centerIn: parent
anchors.margins: 3
spacing: 3
TextField {
objectName: "login"
Layout.fillWidth: true
placeholderText: "Username"
}
TextField {
property string password: text
objectName: "passwordd"
Layout.fillWidth: true
placeholderText: "Password"
echoMode: TextInput.Password
}
Button {
id: proccessButton
text: "Login"
Layout.fillWidth: true
onClicked: Login.test()
}
}
}
}
login.cpp:
Login::Login() {
QQuickView view;
view.setSource(QUrl(QStringLiteral("qrc:/FirstPage.qml")));
QObject *object = view.rootObject();
QObject *login = object->findChild<QObject*>("login");
QObject *password = object->findChild<QObject*>("password");
login_u = login->property("login").toString();
password_u = password->property("password").toString();}
void Login::test(){
qDebug() << "user:" << login_u;
qDebug() << "password" << password_u;
}
Ausgang, wenn ich in der "Button" klicken:
user: ""
password ""
Wo triggern Sie der 'Login'-Konstruktor, um die Werte abzurufen? Sollte das nicht in der 'test()' Aktion gemacht werden? – user0042
Sie können einen reproduzierbaren Code platzieren, Sie haben einige wichtige Details eliminiert. – eyllanesc
Ich versuche @ User0042, das gleiche Ergebnis. –