QTreeView 实现反选
时间: 2023-04-07 18:05:02 浏览: 135
可以通过设置 QItemSelectionModel 的 SelectionFlag 来实现反选,具体代码如下:
```
QItemSelectionModel *selectionModel = treeView->selectionModel();
QModelIndexList selectedIndexes = selectionModel->selectedIndexes();
QItemSelection selection;
foreach (QModelIndex index, selectedIndexes) {
selection.select(index, QItemSelectionModel::Deselect);
}
selectionModel->select(selection, QItemSelectionModel::Select);
```
这段代码会将当前选中的所有项反选。
相关问题
QTreeView 如何实现item 反选
可以通过设置 QTreeView 的 selectionMode 为 QAbstractItemView::MultiSelection 和 selectionBehavior 为 QAbstractItemView::SelectItems,然后在鼠标点击事件中判断当前点击的 item 是否已经被选中,如果已经被选中,则将其取消选中。具体实现可以参考 Qt 官方文档中的示例代码。
QTreeView实现垂直表头
要实现QTreeView的垂直表头,可以使用setHeader()函数来设置QHeaderView作为QTreeView的header,然后将QHeaderView的orientation属性设置为Qt::Vertical,即可实现垂直表头。以下是一个简单的示例代码:
```
QTreeView *treeView = new QTreeView(parent);
QHeaderView *headerView = new QHeaderView(Qt::Vertical, treeView);
treeView->setHeader(headerView);
```
注意,这只是设置了垂直表头,如果需要设置表头的内容,还需要使用QHeaderView的相关函数进行设置。