调用 Qt.createComponent 或者 Qt.createQmlObject 可否?
如 (自Qt,帮助文档)
Item {
id: container
width: 300height: 300
function loadButton() {
var component = Qt.createComponent("Button.qml")
if (component.status == Component.Ready) {
var button = component.createObject(container)
button.color = "red"
}
}
Component.onCompleted: loadButton()
}
var newObject = Qt.createQmlObject('import QtQuick 2.0Rectangle {color: "red"width: 20height: 20}',
parentItem, "dynamicSnippet1")
首先: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: _reccolor: "red"
property alias text: _text.text
Text{
id: _text
text: "red"
}
}
}
}
}
其次,如果你觉得TableView 不好用,那么你可以用ListView 或者Row ,Column 自己写一个类似TabView功能的组件自己用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)