如何从C ++中选择TableView(qml)中的行?

时间:2014-08-20 20:42:52

标签: c++ qt qml

我尝试使用c ++函数在TableView中选择单行。在文档中我找到了property "selection"但是当我尝试在我的代码中使用它时,我收到了一个错误。

第一个问题。如何在我的QML代码中使用此属性?这种方式因错误而无效:无效的属性分配:"选择"是一个只读属性

    TableView{
     ....
     selection.select(0)
    }

我的第二个问题。如何通过c ++更改此属性?我知道我必须使用setProperty()方法,但作为第二个参数将是函数:select(0)?

1 个答案:

答案 0 :(得分:2)

来自the documentation

tableview.selection.select(0)       // select row index 0

tableview.selection.select(1, 3)    // select row indexes 1, 2 and 3

tableview.selection.deselect(0, 1)  // deselects row index 0 and 1

tableview.selection.deselect(2)     // deselects row index 2

您无法从TableView的定义中执行此操作。您必须稍后从JavaScript执行此操作。为TableView分配ID并使用该ID,使用JavaScript选择适当的行。

修改

要从C ++开始,首先需要获得该对象的句柄。最好的方法是将objectName属性分配给该元素,然后使用QObject::findChild()查找它。一旦获得了指向TableView的指针,就可以调用其方法,如here所述。实际上,您首先需要获取其selection属性,然后调用其(selection' s)select()方法。