2016-05-15 45 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) 
     } 
    } 
}