我是一名新的 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)
}
}
}}}
答案1
您在命名 Pagestack 组件时犯了一个小错误:
PageStack {
id: pagestack
稍后您将使用 来调用它pageStack.push
。要正常工作,您只需重命名组件 ID(大写年代):
PageStack {
id: pageStack