J'essaie de passer la valeur de TextField à une chaîne, je crois que la source est correcte, mais quand j'insère la "valeur" dans le TextField et cliquez sur le bouton, il ne retourne rien, mais si je mets cette value in TextField {Text: "Exemple"}, il retourne: "Exemple", des idées?Pourquoi ma chaîne QString n'a-t-elle pas la valeur de TextField?
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;
}
sortie lorsque je clique dans le "Button":
user: ""
password ""
Où déclenchez-vous? le constructeur 'Login', pour récupérer les valeurs? Cela ne devrait-il pas être fait dans l'action 'test()'? – user0042
Vous pouvez placer un code reproductible, vous avez éliminé certains détails importants. – eyllanesc
j'essaie @ user0042, même résultat. –