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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: выделение строки по ID  (Прочитано 3640 раз)
Григорий
Гость
« : Август 06, 2012, 16:24 »

 Уважаемые форумчане , подскажите как выделить строку в QTableView с моделью QSqlQueryModel , после выполнения QSqlQueryModel::setQuery("select * from table") , у таблицы есть поле id,
 так вот как выделить строку если я знаю значение поля ID строки которую надо выделить...?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Август 06, 2012, 17:30 »

tableView->setCurrentIndex() полагаю. если просто выделить, то через tableView->selectionModel().
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Странник
Гость
« Ответ #2 : Август 07, 2012, 00:11 »

Код:
    int column = model->fieldIndex("id"); //номер столбца модели с id
    int id = 1; //искомое значение id

    QModelIndexList matchIndexes = model->match(model->index(0, column), Qt::DisplayRole, id, 1, Qt::MatchExactly);
    if (!matchIndexes.isEmpty())
    {
        int row = matchIndexes.at(0).row();
        tableView->selectRow(row);
        tableView->scrollTo(model->index(row, column));
    }
« Последнее редактирование: Август 07, 2012, 00:13 от Странник » Записан
Григорий
Гость
« Ответ #3 : Август 07, 2012, 08:33 »

Код:
    int column = model->fieldIndex("id"); //номер столбца модели с id
    int id = 1; //искомое значение id

    QModelIndexList matchIndexes = model->match(model->index(0, column), Qt::DisplayRole, id, 1, Qt::MatchExactly);
    if (!matchIndexes.isEmpty())
    {
        int row = matchIndexes.at(0).row();
        tableView->selectRow(row);
        tableView->scrollTo(model->index(row, column));
    }

похоже то самое только у модели QSqlQueryModel нет метода fieldIndex , может есть ему замена?
Записан
Странник
Гость
« Ответ #4 : Август 07, 2012, 08:50 »

похоже то самое только у модели QSqlQueryModel нет метода fieldIndex , может есть ему замена?
действительно, и это очень странно. тогда:
Код:
    int column = model->record().indexOf("id");
« Последнее редактирование: Август 07, 2012, 08:52 от Странник » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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