2016-05-15 41 views
0

之间的交互我想使用一些QML文件(main.qml),但在此之前,我需要得到用户的一些认证信息(登录,传递)。所以,我想这样做,在第二个窗口(login.qml)。我看到Qt.createComponent打开第二QML文件,但我无法摆脱这种类型的窗口的任何信息。2个QML文件

因此,如何能我使用第二个窗口中的第一个窗口的一些信息?

或者我该如何在父qml文件中动态加载这些项目(main.qml,login.qml)?

回答

1

我怎样才能从单独的文件/资源​​动态负荷QML项 另一QML文件?

Qt.CreateComponent允许您使用JavaScript从其他文件动态创建和使用QML代码。

4

那么我怎样才能从第一个窗口的第二个窗口使用一些信息?

这仅仅是一个做它的方式:

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) 
     } 
    } 
}