我試圖將TextField的值傳遞給String,我相信Source是正確的,但是當我將「value」插入到TextField中並單擊該按鈕時,它將不返回任何內容,但如果我設置了該值值在 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,結果相同。 –