qml Stackview: открыть страницу, которая находится в другом файле - PullRequest
0 голосов
/ 16 июня 2020

Моя проблема в том, что я не могу вытолкнуть () страницу из стека. Позвольте мне немного объяснить:

У меня есть страница, на которой отображается пара элементов. У каждого элемента есть кнопка, открывающая новую страницу поверх просмотра стека, где я могу редактировать свой элемент. На этой EditPage есть кнопка закрытия, которая должна: да, вы понимаете: закрыть страницу xD

, что означает, что я хочу вывести страницу из стека

MainView.qml

// ...

StackView {
    id: _myStack
    initialItem: _myView

    GridView {
      id: _myView       
      model: // comes from c++
      delegate: MyItem{}
    }
}

MyItem.qml

Item{
  id: _myItem

  Button{
    id: _buttonEdit
    text: "Edit"
    onClicked{
      _stackview.push("../components/Edit.qml, {some properties I pass through}, MainView.Immediate)   
       // Edit.qml is in another folder, import is done
    }
  }
}

Edit.qml

Page{
  id: _editPage

  // some code

  Button {
    id: _closeButton

    onClicked{
      //
      // here I want to pop this window out of the stack (it is the top item on the stack)
      // _myStack.pop() doesn't work - because _myStack is not visible
    }
}

что можно Я делаю? Я уже пробовал это в Edit.qml: бит, я застрял на этом этапе - где привязать сигнал в MyItem.qml или?

Page{
  id: _editPage

  signal closeEditPage

  Button {
    id: _closeButton

    onClicked{
       closeEditPage()
    }
}

1 Ответ

0 голосов
/ 18 июня 2020

Повторно привязать присоединенное свойство StackView.view для облегчения доступа.

Page{
  id: _editPage

  property StackView _myStack: StackView.view

  Button {
    id: _closeButton

    onClicked{
       _myStack.pop()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...