1

我对sailfish OS编程比较陌生,并且silicaFlickable根据用户提供的选项使用打开新页面。

多屏输出

我看到了多个屏幕的输出,但在 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:我在很长一段时间后重新开始编码,这是我的第一个应用程序。

4

1 回答 1

0

您应该尝试将内部包装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
  ....
}
于 2016-12-12T20:45:26.623 回答