QTreeView:一次将所有选定的单元格设置为用户输入的值

时间:2010-11-11 19:46:57

标签: qt set qtreeview

我有一个QTreeView,它具有ExtendedSelection属性(用户可以选择多个不连续的单元格范围)。

我希望我的应用允许他们选择这些多个单元格,然后输入一个值并让所有单元格都获取该值。

我的问题是我不知道如何将全部细胞传递给我的模型。现在,传递给setData方法的索引只是活动单元格,而不是所选单元格的全部范围。

过去,我的视图每次更改时都会将模型中当前选定的范围存储起来,然后使用它来控制要修改的单元格。这看起来很简陋,我想知道是否有人有更好,更优雅的解决方案。

我顺便使用PyQt,但我怀疑这本身适用于QT。

谢谢!

1 个答案:

答案 0 :(得分:2)

我相信您可以使用QAbstractItemView类的selectionModel方法迭代选定的索引并更改相应单元格的值。以下是一个小例子:

foreach (QModelIndex index, ui->treeView->selectionModel()->selectedIndexes())
{
    qDebug() << "Changing index " << index.row();
    ui->treeView->model()->setData(index, "new data");
}

希望这有帮助,尊重