私は新しいqmlプログラマであり、ボタンをクリックしたときに新しいページを呼び出したい場合、次のような問題があることに気付きました。
TypeError: Cannot call method 'Push' of null
私はこれを解決するために知っていることをすべて試しましたが、それでも何もしません。
ここに私のコードがあります:
import QtQuick 2.0
import Ubuntu.Components 0.1
import "components"
MainView {
objectName: "mainView"
applicationName: "com.ubuntu.developer..EcoLover3"
automaticOrientation: true
width: units.gu(48)
height: units.gu(60)
PageStack {
id: pagestack
Component.onCompleted: Push(page0)
Page {
id: page0
title: i18n.tr("Bem Vindo à aplicação do EcoLover" )
visible: false
Text {
id: entrada
text: qsTr("Caro Cliente, <br>aqui poderá contrloar os seus gastos de energia</br>")
}
Column {
anchors.margins: units.gu(3)
spacing: units.gu(3)
anchors.fill: parent
Image{
anchors.horizontalCenter: parent.horizontalCenter
source: "/home/diogo/ecoLover_teste2/components/Ecolover_com_stroke.png"
}
Button {
anchors.horizontalCenter: parent.horizontalCenter
text: i18n.tr("Page one")
onClicked: pageStack.Push(page1, {color: UbuntuColors.orange})
}
Button {
anchors.horizontalCenter: parent.horizontalCenter
text: i18n.tr("Entrar no EcoLover")
onClicked: pageStack.Push(Qt.resolvedUrl("Pagina_inicial.qml"))
}
}
}
Page {
title: "Rectangle"
id: page1
visible: false
property alias color: rectangle.color
Rectangle {
id: rectangle
anchors {
fill: parent
margins: units.gu(5)
}
}
}}}
Pagestackコンポーネントの命名に少し間違えました:
PageStack {
id: pagestack
後でpageStack.Push
で呼び出します。正しく動作するには、コンポーネントIDの名前を変更するだけです(大文字の[〜#〜] s [〜#〜]):
PageStack {
id: pageStack