Я только начинаю с Qt Quick и QML.
Я написал страницу входа в систему, которая загружает идентификатор пользователя после ввода имени пользователя и пароля. После успешной аутентификации мне нужно передать этот идентификатор в новое окно, которое создается.
Как я могу это сделать?
login.qml отрывок
BSButton {
id: btnOK
anchors.top:senhaInput.bottom
anchors.left: senhaInput.left
anchors.topMargin: 10
width: (senhaInput.width * 0.60) - 5
text: "Entrar"isDefault: true
onClicked: {
lblMsgErro.text = ""lblMsgErro.visible = false;
controller.autenticar(); // returns user id to pass to main.qml
}
}
QLoginController {
id: controller
login: loginInput.text
senha: senhaInput.text
onAuthenticated: {
if (success) {
var component = Qt.createComponent("main.qml");
var win = component.createObject();
win.showFullScreen();
close();
} else {
senhaInput.text = "";
console.log("Falha na autenticação: Usuário e/ou senha inválidos.");
lblMsgErro.text = "Usuário e/ou senha inválidos.";
lblMsgErro.visible = true;
loginInput.focus = true;
}
}
}
База данных работает, я просто не знаю, как отправить идентификатор пользователя в main.qml
Заранее спасибо.
var win = component.createObject();
win.userid = login;
и ваш main.qml должен иметь свойство userid
,
или же,
var win = component.createObject(controller, {'userid':login});
это сделает собственность userid
за win
,