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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Модель (более 1000 строк) функция match  (Прочитано 3788 раз)
majatu
Гость
« : Июль 20, 2009, 13:32 »

Есть модель, в которой более 1000 строк, пытаюсь сначала загрузить модель, потом нужно произвести поиск по id и подсветить строку с соответстующим id. Когда id равен допустим 700, то функция match говорит, что такого id не найдено. В чем может быть проблема?

Вот код

Код:

    model=new QSqlRelationalTableModel(this);
    model->setTable("city");
    model->setRelation(2, QSqlRelation("region","id","title"));
    model->setSort(0, Qt::AscendingOrder);
    model->setFilter("city.visible=1");
    model->select();


...

m_ui->tableView->setModel(model);

...


if(current)
    {
        QModelIndexList indexList = model->match(model->index(0,0), Qt::DisplayRole, current, 1, Qt::MatchExactly);

        qDebug()<<indexList.count();

        if(indexList.count())
        {

            QModelIndex index=indexList.first();
            m_ui->tableView->setCurrentIndex(index);
            this->current_row=index.row();

            QTimer::singleShot(0,this,SLOT(updateScroll()));
        }
    }


p.s. я заметил, что модель грузит сначала почему-то только первые 255 строк
« Последнее редактирование: Июль 20, 2009, 13:42 от majatu » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Июль 21, 2009, 06:19 »

Почитай в ассистенте про
bool QAbstractItemModel::canFetchMore
void QAbstractItemModel::fetchMore
и все поймешь. Подмигивающий
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
majatu
Гость
« Ответ #2 : Июль 21, 2009, 10:13 »

ок, уже допер, сделал модель с такой функцией

Код:
void ListModel::refresh()
{
    setQuery(this->query());
    while( canFetchMore() )
        fetchMore();
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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