Russian Qt Forum
Ноябрь 16, 2024, 00:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTreeView: Одновременный выбор нескольких элементов по shift  (Прочитано 3526 раз)
dr_Begemot
Гость
« : Январь 13, 2011, 14:53 »

Не получается выбрать несколько элементов в QTreeView.
Повешен обработчик на сигнал модели (QAbstractItemModel):
Код:
bool ok;
ok = connect(externTree->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &,const QItemSelection &)),
this, SLOT(markNode(const QItemSelection &,const QItemSelection &)));

Вот реализация функции markNode:
Код:
void MyClassDlg::markNode(const QItemSelection & selected, const QItemSelection & deselected){
QModelIndexList selList = selected.indexes();
QModelIndexList deselList = deselected.indexes();
for(int i=0; i<deselList.count(); i++){
MyPropertyNode *node = treeModel->nodeFromIndex( deselList[i] );
if(node)
node->setIsSelected(false);
}
for(int i=0; i<selList.count(); i++){
MyPropertyNode *node = treeModel->nodeFromIndex( selList[i] );
if(node)
node->setIsSelected(true);
}
}

Пытаюсь, зажимая Shift мышкой выбирать в таблице несколько элементов, но
Код:
selList.count()
все равно равен 1.
Что я делаю не так?

Спасибо)
Записан
Fat-Zer
Гость
« Ответ #1 : Январь 13, 2011, 15:18 »

void   QAbstractItemView::setSelectionMode ( QAbstractItemView::SelectionMode mode )
Записан
dr_Begemot
Гость
« Ответ #2 : Январь 13, 2011, 15:43 »

void   QAbstractItemView::setSelectionMode ( QAbstractItemView::SelectionMode mode )

А что туда передать?
Записан
Fat-Zer
Гость
« Ответ #3 : Январь 13, 2011, 15:56 »

посмотрите в асистенте... там 3 разных режима для выбора нескольких айтемов:
  • QAbstractItemView::ContiguousSelection
  • QAbstractItemView::ExtendedSelection
  • QAbstractItemView::MultiSelection
отличаются тем, что используют разные клавиши для мультивыбора... кто что именно делает - посмотрите в асистенте.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.158 секунд. Запросов: 21.