Название: Как сортировать модель по двум столбцам? Отправлено: Odyssey от Ноябрь 27, 2012, 08:32 Допустим, у меня есть QSqlTableModel. Сортировку модели можно реализовать методом setSort, однако он ведь позволяет сортировать модель только по одному столбцу, правильно? Как быть, если нужно сделать сортировку по двум и более столбцам?
Название: Re: Как сортировать модель по двум столбцам? Отправлено: GreatSnake от Ноябрь 27, 2012, 11:57 Навесь QSortFilterProxyModel с перегруженной lessThan().
Название: Re: Как сортировать модель по двум столбцам? Отправлено: Odyssey от Ноябрь 27, 2012, 12:40 Спасибо!
А можно сопутствующую проблему объяснить? Отображаю отсортированную по setSort модель во вьюере - и никакой сортировки не происходит, даже после "принудительного" select() для модели. С чем это может быть связано? Название: Re: Как сортировать модель по двум столбцам? Отправлено: Odyssey от Ноябрь 28, 2012, 10:27 Дополнительный вопрос.
Как я понял, метод lessThan вызывается только тогда, когда происходит щелчок по заголовку столбца представления после tableView->setSortingEnabled(true); Вопрос 1: можно ли ограничить выбор столбцов, по которым происходит сортировка в представлении? Вопрос 2: можно ли задать столбец сортировки представления "по умолчанию"? (Как я понимаю, вначале происходит автоматическая сортировка по столбцу с номером 0)? Название: Re: Как сортировать модель по двум столбцам? Отправлено: kambala от Ноябрь 28, 2012, 13:29 1. в lessThan() проверять значение sortColumn()
2. Код
Название: Re: Как сортировать модель по двум столбцам? Отправлено: Odyssey от Ноябрь 28, 2012, 14:01 Спасибо, попробую!
Название: Re: Как сортировать модель по двум столбцам? Отправлено: Пантер от Ноябрь 28, 2012, 14:49 Допустим, у меня есть QSqlTableModel. Сортировку модели можно реализовать методом setSort, однако он ведь позволяет сортировать модель только по одному столбцу, правильно? Как быть, если нужно сделать сортировку по двум и более столбцам? Когда-то писал для себя https://github.com/panter-dsd/QDBFRedactor/blob/master/src/core/dbfredactorsortfilterproxymodel.hНазвание: Re: Как сортировать модель по двум столбцам? Отправлено: unkeep от Май 30, 2013, 10:53 я сделал так:
2)в проксимодели добавляем какой-нибудь _secondarySortColumn (делаем его по умолчанию -1) 1)перегружаем lessThan 2)в lessеhan после Код добавляем Код
теперь, если задать _secondarySortColumn !=-1 будет сортировать с учётом вторичного столбца, если не задать, то как обычная сортировка |