Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QSqlRelationalTableMode, сортировка выпадающего списка в QTableView
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Модель/Представление
maint
Есть конструкция
model = new QSqlRelationalTableModel;
model->setTable(...);
model->setRelation(2, QSqlRelation("table", "id", "name"));

ui->view->setModel(model);
ui->view->setItemDelegate(new QSqlRelationalDelegate(ui->view));

В самом выпадающем списке сортировка происходит по id. Кто подскажет как сделать сортировку по name? Ничего в голову не приходит
maint
Цитата(lanz @ 14.4.2015, 19:59) *

это тут при чем? Мне сортировать не таблицу, а выпадающий combobox, который relation определен
lanz
А какая разница? Вешаете на свою модель QSortFilterProxyModel, а уже ее передаете в комбобокс. Не забудьте только потом перемаппить индексы.
maint
Цитата(lanz @ 14.4.2015, 20:08) *
А какая разница? Вешаете на свою модель QSortFilterProxyModel, а уже ее передаете в комбобокс. Не забудьте только потом перемаппить индексы.

вы текст смотрели?
куда передать, вот описание столбца model->setRelation(2, QSqlRelation("table", "id", "name"));
lanz
Конечно нет :lol:
В вашем случае можно попробовать
http://doc.qt.io/qt-4.8/qsqlrelationaltabl...l#relationModel
И у этой можели вызвать setSort по нужной колонке. Потом возможно нужен будет select, надо будет вечером попробовать.
maint
Цитата(lanz @ 14.4.2015, 20:23) *
Конечно нет :lol:
В вашем случае можно попробовать
http://doc.qt.io/qt-4.8/qsqlrelationaltabl...l#relationModel
И у этой можели вызвать setSort по нужной колонке. Потом возможно нужен будет select, надо будет вечером попробовать.

если бы можно было вызвать setSort я бы сделал. Не прокатывает
lanz
Цитата
Не прокатывает

Не вызывается? Или не сортирует?
maint
Цитата(lanz @ 14.4.2015, 21:56) *
Цитата
Не прокатывает

Не вызывается? Или не сортирует?

не сортирует
lanz
У меня сортирует, см. вложение :lol:
Единственный подвох - если foreign key в дочерней таблице называется как один из столбцов в основной, его шатает.
maint
Цитата(lanz @ 15.4.2015, 2:35) *
У меня сортирует, см. вложение :lol:
Единственный подвох - если foreign key в дочерней таблице называется как один из столбцов в основной, его шатает.

блин, хорошо что дали пример. Глаз замылился, перепутал в this->mdl->relationModel( 7 )->setSort( ФИГНЯ, Qt::AscendingOrder )^ там где ФИГНЯ, не тот номер столбца ставил. В ваш пример влебил базу и все сработало :lol:
lanz
Цитата
Глаз замылился, перепутал в this->mdl->relationModel( 7 )->setSort( ФИГНЯ, Qt::AscendingOrder )^

Самое смешное, когда писал пример, сначала в этом же самом месте поставил неправильный номер столбца :lol:
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.