Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Hammer от Январь 21, 2013, 09:55



Название: QSortFilterProxyModel фильтрация по bool
Отправлено: Hammer от Январь 21, 2013, 09:55
Здравствуйте
Есть модель, в основе которой лежит структура
Код:
typedef struct
{
    int id;
    int tape;
    QString name;
    bool visible;
} GROUP;
Есть ListView, в котором должны отображаться только те элементы, для которых visible == true.
Решил сделать через FilterProxyModel, но что-то не вижу там штатных средств для фильтрации по значению bool. Может, я вообще все усложняю?


Название: Re: QSortFilterProxyModel фильтрация по bool
Отправлено: kambala от Январь 21, 2013, 16:56
как-то так:
Код
C++ (Qt)
   virtual bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
   {
       QAbstractItemModel *model = sourceModel();
       return model->data(model->index(source_row, 0,  source_parent), MyVisibleRole).toBool();
   }


Название: Re: QSortFilterProxyModel фильтрация по bool
Отправлено: Hammer от Январь 22, 2013, 07:59
как-то так:
Код
C++ (Qt)
   virtual bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
   {
       QAbstractItemModel *model = sourceModel();
       return model->data(model->index(source_row, 0,  source_parent), MyVisibleRole).toBool();
   }
Это да, просто не хотелось возиться с унаследованием ) Думал, вдруг есть какие-то штатные средства или вообще другие, менее навороченные, методы.
Спасибо за пример!


Название: Re: QSortFilterProxyModel фильтрация по bool
Отправлено: kambala от Январь 22, 2013, 14:33
а по-другому ты с QSortFilterProxyModel не справишься если нужно нестандартное поведение