Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Barmaglodd от Октябрь 02, 2009, 08:57



Название: QSortFilterProxyModel и комбобокс
Отправлено: Barmaglodd от Октябрь 02, 2009, 08:57
Есть модель, в ней первая колонка - даты.
Вешаю на неё QSortFilterProxyModel, чтобы отсортировать по убыванию даты, передаю QSortFilterProxyModel комбобоксу.
Проблема в том, что первый раз в комбобоксе список не отсортирован, но когда содержимое исходной модели меняется, сортировка появляется.

Код:
    QSortFilterProxyModel dsm;
    dsm.setDynamicSortFilter(true);
    dsm.setSourceModel(&datesModel);
    dsm.sort(0, Qt::DescendingOrder);


Название: Re: QSortFilterProxyModel и комбобокс
Отправлено: Akon от Декабрь 31, 2012, 08:01
прокси модель перед использованием (в комбо) нужно отсортировать (sort()).


Название: Re: QSortFilterProxyModel и комбобокс
Отправлено: GreatSnake от Январь 04, 2013, 13:28
Можно задействовать
Код
C++ (Qt)
void QStandardItemModel::setSortRole ( int role )
:
Код
C++ (Qt)
qobject_cast< QStandardItemModel* >( combobox->model() )->setSortRole( Qt::UserRole );
Дату добавляй через
Код
C++ (Qt)
void QComboBox::setItemData ( int index, const QVariant & value, int role = Qt::UserRole )