我需要在swipeview上动态添加页面。 所以我的代码:
SwipeView {
id: viewSwipe
width: parent.width
height: parent.height * 0.70
currentIndex: 0
Component.onCompleted: {
curIndexWitouthZero = viewSwipe.currentIndex
curIndexWitouthZero += 1
addPage(RecipesPhase)
}
onCurrentIndexChanged: {
curIndexWitouthZero = viewSwipe.currentIndex
curIndexWitouthZero += 1
}
Item {
id: firstPage
RecipesPhase{}
}
}
PageIndicator {
id: indicator
interactive: true
count: viewSwipe.count
currentIndex: viewSwipe.currentIndex
anchors.top: viewSwipe.bottom
anchors.topMargin: parent.height * 0.05
anchors.horizontalCenter: parent.horizontalCenter
}
我有一个按钮,当单击该按钮时,该事件应将页面添加为项目。 我的代码是:
MouseArea{
anchors.fill: parent
onClicked: {
console.log("Cliccato additem")
//viewSwipe.addItem(RecipesPhase)
viewSwipe.addPage(RecipesPhase)
}
}
但是什么也没发生。所以我也尝试过:
SwipeView {
id: viewSwipe
width: parent.width
height: parent.height * 0.70
currentIndex: 0
Component.onCompleted: {
curIndexWitouthZero = viewSwipe.currentIndex
curIndexWitouthZero += 1
addPage(RecipesPhase)
}
onCurrentIndexChanged: {
curIndexWitouthZero = viewSwipe.currentIndex
curIndexWitouthZero += 1
}
function addPage(page) {
console.log("funzione addPage()")
addItem(page)
page.visible = true
}
}
然后致电:
viewSwipe.addPage(MyPageQML)
但是什么也没发生。 所以,问题是,我错在哪里?感谢您的解决方案。
答案 0 :(得分:1)
RecipesPhase是一个组件,而不是一个Item,一个组件类似于一个类,一个Item类似于一个对象,因此其思想是动态创建该项目。例如,我将认为RecipesPhase是以下组件:
RecipesPhase.qml
-static -lc++abi -pthread -fuse-ld=lld
然后每次您按下鼠标区域都会创建一种随机颜色的RecipesPhase:
import QtQuick 2.0
Rectangle {
width: 100
height: 100
color: "red"
}