0

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

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

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

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

顺便说一句,我正在使用 PyQt,尽管我怀疑这本身适用于 QT。

谢谢!

4

1 回答 1

2

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

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

希望这会有所帮助,问候

于 2010-11-11T22:56:57.067 回答