Проблемы с Pagestack.push()

Я относительно новичок в программировании OS для Sailfish и пока использую SiliconFlickable для открытия новой страницы в зависимости от опции, предоставленной пользователем: вывод нескольких экранов

Я вижу вывод нескольких экранов и не могу найти что-нибудь, касающееся помощи в документации по qt. Мой код:

ApplicationWindow
{
    id: mainPage
    SilicaFlickable{
        anchors.fill: parent
        PullDownMenu {
            id:pullDownMenu
            MenuItem{
                id: decimalTo
                text: qsTr("Decimal")
                onClicked: pageStack.push(Qt.resolvedUrl("./pages/Decimal.qml"))
            }
            MenuItem{
                id:binaryTo
                text: qsTr("Binary")
                onClicked: pageStack.push(Qt.resolvedUrl("./pages/Binary.qml"))
            }
        }
        /*cover: Qt.resolvedUrl("cover/CoverPage.qml")
        allowedOrientations: defaultAllowedOrientations*/
        Column{
            anchors.fill: parent
            anchors.margins: Theme.paddingLarge
            spacing: Theme.paddingLarge
            PageHeader{
                title: "Number system convertor"
            }
            Label
            {
                width: parent.width
                anchors.leftMargin: Theme.paddingLarge
                anchors.rightMargin: Theme.paddingLarge
                horizontalAlignment: Text.AlignHCenter
                wrapMode: Text.WrapAtWordBoundaryOrAnywhere
                textFormat: Text.RichText
                text: "Please select the input number system from the flickable menu. Pull down to see the options."

            }
        }
    }
}

Десятичная или двоичная страница, которая открывается, в настоящее время является просто по умолчанию firstpage.qml и secondpage.qml, которые генерируются при создании нового проекта. Любая помощь будет оценена. PS: я перезагружаю кодирование после долгого времени, и это мое первое приложение.

1 ответ

Вы должны попытаться обернуть внутреннюю часть ApplicationWindow в объекте Page:

ApplicationWindow {
  Page {
    id: mainPage
    SilicaFlickable {
      ...
    }
  }
}

Но обычно вы делаете что-то вроде

// myApplication.qml
import QtQuick 2.0
import Sailfish.Silica 1.0

ApplicationWindow {
    id: mainWindow
    initialPage: Qt.resolvedUrl("MainPage.qml")
}

// MainPage.qml
import QtQuick 2.0
import Sailfish.Silica 1.0

Page {
  id: mainPage
  ....
}
Другие вопросы по тегам