Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Zmey от Февраль 22, 2005, 16:46



Название: Сортировка в QTable
Отправлено: Zmey от Февраль 22, 2005, 16:46
QTable сортирует столбец по первому символу, то есть столбец с числами отсортирует как 1, 10, 100, 101, 11, 110, 113, 13, 14, 140...
Можно как-нить ему сказать что надо сортировать как числа, а не как строки? Или придется самому писать функцию сортировки?


Название: Сортировка в QTable
Отправлено: Admin от Февраль 22, 2005, 17:17
Варианты
1. самому
2. вывод 0001 0002 0003 0004


Название: Сортировка в QTable
Отправлено: Sergeich от Февраль 22, 2005, 17:46
Отнаследуйся от QTableItem и переопредели в нем метод key()


Название: Сортировка в QTable
Отправлено: Zmey от Февраль 24, 2005, 10:14
Цитата: "Sergeich"
Отнаследуйся от QTableItem и переопредели в нем метод key()

Эээ... А как его переопределить?.. Прочитав хелп че-та не понял, что это функция делает и когда она используется.


Название: Сортировка в QTable
Отправлено: Sergeich от Февраль 24, 2005, 15:39
Код:

class IntTableItem : public QTableItem
{
public:
.....
  QString key() const;
private:
  int val;
}

QString IntTableItem::key() const
{
  return QString( "%1" ).arg( val ).rightJustify( 10, '0' );
}


Название: Сортировка в QTable
Отправлено: Zmey от Февраль 25, 2005, 09:46
Спасибо большое.
Кстати, вот тут http://www.linux-solutions.at/projects/zaurus/devel-table.html есть интересный вариант решения, с его помошью можно не заморачиваться с QTableItem.