之间的交互我想使用一些QML文件(main.qml
),但在此之前,我需要得到用户的一些认证信息(登录,传递)。所以,我想这样做,在第二个窗口(login.qml
)。我看到Qt.createComponent
打开第二QML文件,但我无法摆脱这种类型的窗口的任何信息。2个QML文件
因此,如何能我使用第二个窗口中的第一个窗口的一些信息?
或者我该如何在父qml文件中动态加载这些项目(main.qml
,login.qml
)?
之间的交互我想使用一些QML文件(main.qml
),但在此之前,我需要得到用户的一些认证信息(登录,传递)。所以,我想这样做,在第二个窗口(login.qml
)。我看到Qt.createComponent
打开第二QML文件,但我无法摆脱这种类型的窗口的任何信息。2个QML文件
因此,如何能我使用第二个窗口中的第一个窗口的一些信息?
或者我该如何在父qml文件中动态加载这些项目(main.qml
,login.qml
)?
我怎样才能从单独的文件/资源动态负荷QML项 另一QML文件?
Qt.CreateComponent
允许您使用JavaScript从其他文件动态创建和使用QML代码。
那么我怎样才能从第一个窗口的第二个窗口使用一些信息?
这仅仅是一个做它的方式:
main.qml
import QtQuick 2.4
import QtQuick.Controls 1.3
import QtQuick.Window 2.2
import QtQuick.Layouts 1.1
ApplicationWindow {
width: 400
height: 400
visible: true
ColumnLayout {
id: logItems
height: 200
Button {
id: loginButton
onClicked: loginForm.visible = true
text: "Log in"
}
Login {
anchors.top: loginButton.bottom
id: loginForm
visible: false
onLoginInfo: {
logInfo.text = "User:" + user + " password: " + password
}
}
}
Text {
id: logInfo
anchors.top : logItems.bottom
}
}
Login.qml
import QtQuick 2.4
import QtQuick.Controls 1.3
import QtQuick.Layouts 1.1
Item {
signal loginInfo(string user, string password)
ColumnLayout {
RowLayout {
TextField {
id: user
}
TextField {
id: password
}
}
Button {
text: "Submit"
onClicked: loginInfo(user.text, password.text)
}
}
}