TextField의 값을 String에 전달하려고했는데 원본이 정확하다고 생각하지만 TextField에 "value"를 삽입하고 버튼을 클릭하면 아무 것도 반환하지 않습니다. 그러나이 값을 설정하면 TextField {Text : "Example"}의 값 : 반환 값 : "예", 어떤 아이디어입니까?QString이 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;
}
출력 내가 "버튼"을 클릭 할 때 :
user: ""
password ""
어디에서 트리거하나요? 값을 검색하는'Login' 생성자? 'test()'액션에서 그렇게해야하지 않습니까? – user0042
재현 가능한 코드를 배치 할 수 있으므로 중요한 일부 세부 정보가 제거되었습니다. – eyllanesc
나는 @ user0042, 같은 결과를 시도합니다. –