我想使用一些qml文件( main.qml )但在此之前我需要从用户那里获得一些身份验证信息(登录,传递) . 所以我想在第二个窗口( login.qml )中执行此操作 . 我看到 Qt.createComponent 用于打开第二个qml文件,但我无法从这种类型的窗口获取任何信息 .
main.qml
login.qml
Qt.createComponent
那么如何在第一个窗口中使用第二个窗口中的一些信息呢?
或者我如何在父qml文件中动态加载这些项目( main.qml , login.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) } } }
如何从另一个QML文件中的单独文件/资源动态加载QML项目?
Qt.CreateComponent允许您使用JavaScript动态创建和使用其他文件中的QML代码 .
2 回答
这只是一种方法:
main.qml
Login.qml
Qt.CreateComponent允许您使用JavaScript动态创建和使用其他文件中的QML代码 .