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

标签 c++ qt qml

我尝试使用 C++ 函数在 TableView 中选择单行。在文档中我发现 property "selection"但是当我尝试在代码中使用它时,我收到错误。

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

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

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

最佳答案

来自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)select()方法。

关于c++ - 如何从 C++ 中选择 TableView (qml) 中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25414067/

相关文章:

c++ - 可以在同一个 VBO 中存储不同的顶点属性和索引吗?

qt - 调试很慢

c++ - Qt 如何设法将 main() 用于 Windows 中的非控制台应用程序?

qt - QML:如何处理鼠标悬停?

qt - 如何应对 child 能见度的变化?

c++ - mex : undefined reference to ".." 错误

c++ - Vim Syntastic 显示警告并设置警告级别

c++ - 上下文依赖于 QListView 中的拖放

c++ - 如何避免在从 C++ 传递到 QML 并再次传递到 C++ 期间对象复制?

c++ - 预取双类成员需要强制转换为 char*?