Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Kosh от Май 03, 2007, 13:22



Название: [qt-3.3.4] QTable и сортировка
Отправлено: Kosh от Май 03, 2007, 13:22
Ситуация такая:
 редактирую поля выделенной в таблице строки, после чего вызываю sortColumn() для всей строки.
Как узнать, на какое место переместилась моя строка после сортировки? Хочется на ней выделение удержать.


Название: [qt-3.3.4] QTable и сортировка
Отправлено: Tonal от Май 03, 2007, 16:29
У нас, используется сортировка через QSortFilterProxyModel. И выделение сохраняется... Правда сама строка может вылететь с экрана. Но, это уже просто лечиться.
Да, мы ещё редактирывание грида не используем. ;-)


Название: [qt-3.3.4] QTable и сортировка
Отправлено: Sergeich от Май 03, 2007, 16:48
Можно отслеживать перемещения строк в swapRows


Название: [qt-3.3.4] QTable и сортировка
Отправлено: Kosh от Май 04, 2007, 11:13
Все оказалось проще, чем вы думаете!
Код:

QTableSelection sel = table->selection(table->currentSelection()); // стиль выделения должен быть SingleRow

QTableItem *item = table->item(sel.topRow(), 0); // указатель на первую ячейку в выделенной строке

... // редактирование строки, в которой находится ячейка item
...// сортировка table. меняется порядок отрисовки указателей.

table->selectRow(item->row());  // опять выделяем строку с нашей ячейкой


Только во в винде selectRow то отрабатывается, то не отрабатывается. Это зависит от FocusStyle и еще от чего-то.Сию тайну я еще не постигла. Но под отладчиком видно, что новый номер строки возвращается правильно.


Название: Re: [qt-3.3.4] QTable и сортировка
Отправлено: Stasey от Май 06, 2010, 20:59
Народ, помогите, плиз!
У меня проблема с сортировкой данных в таблице в QT 3.3.4.
Таблица QTable. Заполнена данными из базы данных из нескольких таблиц. Необходима построчная сортировка по клику на заголовок колонки.
Не подскажете, какими средствами это можно реализовать?
Буду очень признательна!