Russian Qt Forum
Сентябрь 25, 2024, 02:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSortFilterProxyModel + QIdentityProxyModel (Qt 4.8.4)  (Прочитано 3032 раз)
kandrey
Гость
« : Июнь 03, 2013, 18:51 »

Привет!
Есть такой кусок кода

class Model : public QAbstractTableModel
{
public:
    Model(QObject *parent = 0) :
        QAbstractTableModel(parent)
    {}
    int rowCount(const QModelIndex &parent) const
    { return 10; }
    int columnCount(const QModelIndex &parent) const
    { return 5; }
    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const
    {
        if(!index.isValid())
            return QVariant();

        if(role == Qt::DisplayRole)
            return QString("%1:%2").arg(index.row()).arg(index.column());

        return QVariant();
    }
};

TestWidget::TestWidget(QWidget *parent) :
    QWidget(parent)
{
    QVBoxLayout *l = new QVBoxLayout;
    setLayout(l);
    QTableView *view = new QTableView(this);
    view->setSelectionBehavior(QAbstractItemView::SelectRows);
    view->setSortingEnabled(true);
    l->addWidget(view);

    Model *model = new Model(this);

    QSortFilterProxyModel *sortModel = new QSortFilterProxyModel(this);
    sortModel->setSourceModel(model);

    QIdentityProxyModel *proxy = new QIdentityProxyModel(this);
    proxy->setSourceModel(sortModel);

    view->setModel(proxy);

    resize(800, 600);
}

если в таблице выделить строку и нажать сортировку выделенные ячейки оказываются в разных строках. Что не так с QIdentityProxyModel или я как то не так ее применяю?
« Последнее редактирование: Июнь 03, 2013, 19:24 от kandrey » Записан
0x6368656174
Гость
« Ответ #1 : Июнь 04, 2013, 03:42 »

Надо наоборот:
proxy->setSourceModel(model);
sortModel->setSourceModel(proxy);
view->setModel(sortModel);
Записан
kandrey
Гость
« Ответ #2 : Июнь 04, 2013, 13:45 »

а почему так надо? а если нужна прокси модель именно после сортировки?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.111 секунд. Запросов: 21.