我刚开始使用Qt Quick和QML。
我写了一个登录页面,在用户名和密码输入后加载用户ID。身份验证成功后,我需要将此ID传递给正在创建的新窗口。
我该怎么做?
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;
}
}
}
数据库的东西正在运行,我只是不知道如何将userid发送到main.qml
提前谢谢。
答案 0 :(得分:1)
var win = component.createObject();
win.userid = login;
并且您的main.qml应该具有属性userid
。
,或者
var win = component.createObject(controller, {'userid':login});
它会为userid
创建一个属性win
。