crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> сортировка чисел в QStandardItemModel
Dovgon
  опции профиля:
сообщение 23.7.2012, 10:39
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 92
Регистрация: 5.1.2011
Пользователь №: 2325

Спасибо сказали: 3 раз(а)




Репутация:   0  


Нужно отсортировать числовую колонку в таблице в которой занесены числа.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 23.7.2012, 10:51
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


QTreeView *pTree = new QTreeView;
MyItemModel *pModel= new MyItemModel(this);
pTree->setModel(pModel);

pModel->sort( 0, Qt::AscendingOrder );
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Dovgon
  опции профиля:
сообщение 23.7.2012, 11:01
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 92
Регистрация: 5.1.2011
Пользователь №: 2325

Спасибо сказали: 3 раз(а)




Репутация:   0  


Цитата(ViGOur @ 23.7.2012, 10:51) *
QTreeView *pTree = new QTreeView;
MyItemModel *pModel= new MyItemModel(this);
pTree->setModel(pModel);

pModel->sort( 0, Qt::AscendingOrder );

:), а сам пробовал что получится, 1, 10,11 ... а мне надо 1, 2, 3 ...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 23.7.2012, 11:44
Сообщение #4


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Вот так и нужно было говорить! :)
У тебя есть два варианта решения этой проблемы:
1. Переопределить sort
2. Использовать QSortFilterProxyModel, в котором переопределить: bool lessThan(const QModelIndex &left, const QModelIndex &right) const;

и там уже переводить в строку в число
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 23.7.2012, 11:45
Сообщение #5


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


видимо, там используется лексикографическая сортировака . Если ничего радикально не менять, то проще всего занести числа в виде выравненных строк (00001, 00002,...... 00199)

если же незначащие нули нельзя показывать, то эту колонку можно сделать дополнительной и скрытой
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.4.2024, 14:11