我有一个QTreeView,它具有ExtendedSelection属性(用户可以选择多个不连续的单元格范围)。
我希望我的应用允许他们选择这些多个单元格,然后输入一个值并让所有单元格都获取该值。
我的问题是我不知道如何将全部细胞传递给我的模型。现在,传递给setData方法的索引只是活动单元格,而不是所选单元格的全部范围。
过去,我的视图每次更改时都会将模型中当前选定的范围存储起来,然后使用它来控制要修改的单元格。这看起来很简陋,我想知道是否有人有更好,更优雅的解决方案。
我顺便使用PyQt,但我怀疑这本身适用于QT。
谢谢!
答案 0 :(得分:2)
我相信您可以使用QAbstractItemView类的selectionModel方法迭代选定的索引并更改相应单元格的值。以下是一个小例子:
foreach (QModelIndex index, ui->treeView->selectionModel()->selectedIndexes())
{
qDebug() << "Changing index " << index.row();
ui->treeView->model()->setData(index, "new data");
}
希望这有帮助,尊重