2017-12-28 25 views
1

私はStackViewとボタンをクリックするたびにプッシュしたいアイテムを持っています。初めてボタンを押すときにのみ動作し、親子関係に問題があることを理解できます。しかし、それを修正する方法は?StackViewを再帰的にQMLにプッシュするには?

main.qml

import QtQuick 2.9 
import QtQuick.Window 2.2 
import QtQuick.Controls 1.4 

Window { 
    visible: true 
    width: 640 
    height: 480 

    StackView{ 
     id: stackView 
     anchors.fill: parent 

     initialItem: Item { 
      width: parent.width 
      height: parent.height 
      FirstLevel { 
       myModel: 5 
       onButtonClicked: { 
        stackView.push("qrc:/FirstLevel.qml", {myModel: 5}) 
       } 
      } 
     } 
    } 
} 

FirstLevel.qml

import QtQuick 2.0 
import QtQuick.Controls 1.4 

Column { 
    property var myModel 

    signal buttonClicked() 

    Repeater { 
     model: myModel 

     Button { 
      text: model.index 
      onClicked: { 
       buttonClicked() 
      } 
     } 
    } 
} 

UPDATE私はstackviewに私がクリックするたびにFirstLevel.qmlアイテムをプッシュする

Iのボタンアイテム。あなたはFirstLevel.qmlにプッシュしなければならない

+0

あなたが欲しいものをよりよく説明します。 – eyllanesc

+0

@eyllanesc更新情報をチェックしてください – Mikhail

答えて

2

main.qml

import QtQuick 2.9 
import QtQuick.Window 2.2 
import QtQuick.Controls 1.4 

Window { 
    visible: true 
    width: 640 
    height: 480 

    StackView{ 
     id: stackView 
     anchors.fill: parent 

     initialItem: Item { 
      width: parent.width 
      height: parent.height 
      FirstLevel { 
       myModel: 5 
      } 
     } 
    } 
} 

FirstLevel.qml

import QtQuick 2.0 
import QtQuick.Controls 1.4 

Column { 
    property var myModel 
    Repeater { 
     model: myModel 
     Button { 
      text: model.index 
      onClicked: { 
       stackView.push("qrc:/FirstLevel.qml", {myModel: myModel}) 
      } 
     } 
    } 
}