У меня есть QTreeView, который отображает элементы и QSortFilterProxyModel для фильтрации. QTreeView настроен для SingleSelection и SelectRows.Четкий выбор QTreeView, если выбранный элемент отфильтрован
Если выбранный элемент удален с использованием фильтра, выбирается следующий элемент без фильтрации. Я хочу изменить это поведение. Моя нынешняя идея - подключиться к rowsAboutToBeRemoved() и очистить выделение, если выбранный элемент удален.
connect(_ui.treeView->model(), &QAbstractItemModel::rowsAboutToBeRemoved,
[this] (const QModelIndex & parent, int start, int end) {//check and clear selection});
Однако интервал QT изменяет выбор к следующему пункту до того, как сигнал rowsAboutToBeRemoved() срабатывают. Поэтому я не могу проверить, выбран ли выбранный элемент.
Есть ли лучший способ очистить выбор, если элемент фильтруется? Я бы предпочел решение, которое не связано с получением QTreeView.