Russian Qt Forum

Qt => Model-View (MV) => Тема начата: maint от Февраль 12, 2015, 09:23



Название: Qt5 не выделяет строку в QTableView при перемещении столбцов
Отправлено: maint от Февраль 12, 2015, 09:23
Есть Qt 5.4. Определяю QTableView следующим образом
Код
C++ (Qt)
 
view->horizontalHeader()->setSectionsMovable(true);
view->horizontalHeader()->moveSection(7, 1);
view->horizontalHeader()->moveSection(7, 2);
После этого
Код
C++ (Qt)
QModelIndex mi;
view->selectRow(mi.row());
 
Перестает выделять строку (row). Если убрать перемещения столбцов, то все хорошо. Более того, если сторбцы переместить вручную, та же беда. Никто не знает в какую сторону копать что бы избавится от плюхи?
В Qt4 работало при view->horizontalHeader()->setMovable(true), но это исчезло после улучшений в пятерке


Название: Re: Qt5 не выделяет строку в QTableView при перемещении сm
Отправлено: Johnik от Февраль 12, 2015, 09:43
Код
C++ (Qt)
QModelIndex mi;
view->selectRow(mi.row());
 

посмотрите на конструктор:
Код
C++ (Qt)
Q_DECL_CONSTEXPR inline QModelIndex() : r(-1), c(-1), i(0), m(0) {}

row по умолчанию = -1;

а вот метод:
Код
C++ (Qt)
void QTableViewPrivate::selectRow(int row, bool anchor)
{
...
   if (row >= 0 && row < model->rowCount(root)) {
...
   }
}