请教大侠们,怎么用QML实现可编辑的TableView
1个回答
展开全部
首先:
TableView 里面的Tab 其实是一个Loader,TableView提供getTab(int index)方法来获取相应的Tab,你若想编辑TableView里面的某一个Tab用getTab先获取到Tab,然后你可以通过Loader的item属性获取到 Loader所实例化的对象(即Tab中包含的第一层打括号的内容)。因此,若想编辑Tab中的内容,你只要把你要编辑的东西 作为属性定义在Tab的括号内,在通过getTab(i).item.属性 就可以在外围编辑了。
例如
MouseArea {
anchors.fill: parent
onClicked: {
_tab.getTab(0).item.color = "green"
_tab.getTab(0).item.text = "green"
}
}
TabView {
id: _tab
Tab {
title: "Red"
Rectangle {id: _rec; color: "red"
property alias text: _text.text
Text{
id: _text
text: "red"
}
}
}
}
}
其次,如果你觉得TableView 不好用,那么你可以用ListView 或者Row ,Column 自己写一个类似TabView功能的组件自己用
TableView 里面的Tab 其实是一个Loader,TableView提供getTab(int index)方法来获取相应的Tab,你若想编辑TableView里面的某一个Tab用getTab先获取到Tab,然后你可以通过Loader的item属性获取到 Loader所实例化的对象(即Tab中包含的第一层打括号的内容)。因此,若想编辑Tab中的内容,你只要把你要编辑的东西 作为属性定义在Tab的括号内,在通过getTab(i).item.属性 就可以在外围编辑了。
例如
MouseArea {
anchors.fill: parent
onClicked: {
_tab.getTab(0).item.color = "green"
_tab.getTab(0).item.text = "green"
}
}
TabView {
id: _tab
Tab {
title: "Red"
Rectangle {id: _rec; color: "red"
property alias text: _text.text
Text{
id: _text
text: "red"
}
}
}
}
}
其次,如果你觉得TableView 不好用,那么你可以用ListView 或者Row ,Column 自己写一个类似TabView功能的组件自己用
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询