c++ - 从 QTreeView 中删除项目时取消选择所有行

标签 c++ qt

我有带有选择模式的 QTreeView:SingleSelection ( selection modes )。

我想删除选定的项目。那么rowsAboutToBeRemoved()调用函数并自动选择相邻项目,如 comment 中指定的那样: //单选模式下保证选中一个item.

如何避免选择改变?

  1. 如何使删除后不选中任何项目?
  2. 如何选择已删除项的父项?

最佳答案

给定:

QTreeView view;

我们可以访问 QItemSelectionModel临时实例和禁用信号:

QItemSelectionModel *selectModel = view.selectionModel();
selectModel->blockSignals(true);
//set the selection
selectModel->blockSignals(false);

快速查看源代码显示 Qt 将 QItemSelectionModel::currentChanged() 信号连接到 View 的 currentChanged() 插槽,这似乎是源代码你的麻烦。

关于c++ - 从 QTreeView 中删除项目时取消选择所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50877726/

相关文章:

c++ - mfc位图读取全黑位图

cocoa - Qt 中的 OS X 透明面板?

c++ - 从 QGraphicsScene 中删除 QGraphicsItem/QGraphicsObject?

c++ - 插槽可以接受比信号提供的参数更少的参数,如何? -Qt

c++ - 如何访问 QHeaderView::sectionsInserted 插槽

c++ - 如何处理 boost::filesystem::path 的空格

c++ - else 和 if 语句

c++ - 在现有文件中的所需行写入数据

c++ - 对 CUDA 代码使用 C++ header 结构

python - Pyside 同时滚动两个 qtextedits