Russian Qt Forum

Qt => Model-View (MV) => Тема начата: blood_shadow от Март 12, 2011, 11:47



Название: Не выделяет строку
Отправлено: blood_shadow от Март 12, 2011, 11:47
Добрый день,
нужно выделить всю строку в представлении, модель accountModel
получаю текущую модель выделения:
Код
C++ (Qt)
selectionModel = tableView->selectionModel();
и подключаю сигнал:
Код
C++ (Qt)
connect(selectionModel, SIGNAL(currentChanged(QModelIndex , QModelIndex )),
           this, SLOT(selectRow(QModelIndex , QModelIndex )));

слот selectRow определен так:
Код
C++ (Qt)
void MailAccountTable::selectRow(const QModelIndex &current,
                                   const QModelIndex &previous)
{
 
   QItemSelection selection;
   selection.select(accountModel->index(current.row(), 0),
       accountModel->index(current.row(), accountModel->columnCount() - 1));
 
   selectionModel->select(selection,
                          QItemSelectionModel::Select);
 
   qDebug() << "Selection occurs";
 
}
 

то есть при выделении какого-нить элемента я вызываю слот selectRow и выделяю всю строку,
но проблема как раз в том что слот вызывается, но выделение строки не происходит, почему?


Название: Re: Не выделяет строку
Отправлено: Disaron от Март 13, 2011, 12:29
Если просто надо выделить строку, то зачем такие заморочи? Достаточно:
Код
C++ (Qt)
void setSelectionBehavior ( QAbstractItemView::SelectionBehavior behavior )
 
tableView->setSelectionBehavior(QAbstractItemView::SelectRows)

Или есть необходимость выделять в уже выделенном? о_О


Название: Re: Не выделяет строку
Отправлено: blood_shadow от Март 13, 2011, 15:48
Если просто надо выделить строку, то зачем такие заморочи? Достаточно:
Код
C++ (Qt)
void setSelectionBehavior ( QAbstractItemView::SelectionBehavior behavior )
 
tableView->setSelectionBehavior(QAbstractItemView::SelectRows)

Или есть необходимость выделять в уже выделенном? о_О
сделал тоже самое, просто хотел разобраться почему выше указанный мною способ не работает  ???