Russian Qt Forum

Qt => Model-View (MV) => Тема начата: NicK от Декабрь 16, 2009, 10:48



Название: QTreeVIew SelectRow
Отправлено: NicK от Декабрь 16, 2009, 10:48
В QTableView есть удобный слот QTableView::selectRow ( int row ) который позволяет выделить нужный ряд в таблице.
т.е. я просто делал так и все было ок:
Код:
...
VIEW=new QTreeView();
VIEW->setModel(model);
VIEW->setSelectionMode(QAbstractItemView::SingleSelection);
VIEW->setSelectionBehavior(QAbstractItemView::SelectRows);
...
VIEW->selectRow(intRow2Select)

Теперь решил перейти на QTreeView. Там есть QTreeView::setSelection. Но как им пользоваться?
Подскажите пример, как выделить нужный ряд (элемент) в QTreeView?


Название: Re: QTreeVIew SelectRow
Отправлено: NicK от Декабрь 16, 2009, 15:15
В общем придумал вот такую штуку:

Код:
if (model->rowCount()>intLastKnownSelectedRow){
                       for (int i=0;i<model->columnCount();++i)VIEW->selectionModel()->select(model->index(intLastKnownSelectedRow, i), QItemSelectionModel::Select);
                       VIEW->scrollTo(model->index(intLastKnownSelectedRow,0),QAbstractItemView::PositionAtCenter);
};


Название: Re: QTreeVIew SelectRow
Отправлено: SABROG от Декабрь 16, 2009, 23:14
Еще так можно попробовать

Код
C++ (Qt)
VIEW->selectionModel()->select(QItemSelection(model->index(intLastKnowSelectedRow, 0), model->index(intLastKnowSelectedRow, model->columnCount())), QItemSelectionModel::Select);