Название: QTableView порядок сортировки Отправлено: qwyllum от Июнь 14, 2013, 21:35 Доброго времени суток! Сделал сортировку QTableView, но сортируемые элементы выглядят так: 1,11,12,13,2,3,4..... а нужно 1,2,3,4...10,11,12. Можно ли как-то исправить это? В какую сторону копать? Спасибо большое.
Название: Re: QTableView порядок сортировки Отправлено: Kurles от Июнь 14, 2013, 23:12 Доброго времени суток! Сделал сортировку QTableView, но сортируемые элементы выглядят так: 1,11,12,13,2,3,4..... а нужно 1,2,3,4...10,11,12. Можно ли как-то исправить это? В какую сторону копать? Спасибо большое. Cудя по документации надо переопределять в модели виртуальный метод void QAbstractItemModel::sort ( int column, Qt::SortOrder order = Qt::AscendingOrder ) .Название: Re: QTableView порядок сортировки Отправлено: GreatSnake от Июнь 15, 2013, 14:01 2 варианта:
1. Навешиваешь QSortFilterProxyModel с перегруженной lessThan() 2. Если используешь QStandardItemModel, то через QStandardItemModel::setItemPrototype() задаёшь производный от QStandardItem с перегруженным operator<. При сравнении строк используй что-то вроде strnatcmp (http://the-tower-of-babel.googlecode.com/svn/trunk/src/strnatcmp.c). Имхо, 2-й вариант для QStandardItemModel предпочтительнее. |