Je suis un nouveau programmeur qml et je me suis retrouvé dans ce problème que lorsque je veux appeler une nouvelle page lorsque je clique sur un bouton, elle indique:
TypeError: Cannot call method 'Push' of null
J'ai essayé tout ce que je sais pour résoudre ce problème mais toujours rien.
Voici mon code:
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)
}
}
}}}
Vous avez commis une petite erreur en nommant votre composant Pagestack:
PageStack {
id: pagestack
Plus tard, vous l'appelez avec pageStack.Push
. Pour fonctionner correctement, il vous suffit de renommer votre id de composant (avec une majuscule S):
PageStack {
id: pageStack