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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Перейти к следующему итему имея указатель на предведущий  (Прочитано 3018 раз)
iukash
Гость
« : Июнь 09, 2011, 23:20 »

В общем есть модель, добавляю строки  
Код:
QList <QStandardItem*> list;
list << item1 << item2 << item3;
appendRow(list);
В общем вопрос следующий, к примеру я получил указатель на итем item1, как перейти на item2? Пробую так
Код:
item2 = item1 + sizeof(QStandardItem);
но так не работает!
« Последнее редактирование: Июнь 10, 2011, 11:17 от iukash » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Июнь 09, 2011, 23:37 »

Код
C++ (Qt)
item2 = model->item(item1->row(), item1->column() + 1);
Записан

Изучением 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
iukash
Гость
« Ответ #2 : Июнь 10, 2011, 09:59 »

Код
C++ (Qt)
item2 = model->item(item1->row(), item1->column() + 1);
Спасибо огромное! А я начал раскуривать пользовательский итем, но там вылезли другие проблемы, а тут такое простое решение проблемы! Спасибо!
Записан
iukash
Гость
« Ответ #3 : Июнь 10, 2011, 10:45 »

Так рано порадовался, функция не учитывает что может быть row = 0, column = 0, и при этом это могут быть разные элементы, а он берет самый верхний parent.
Записан
iukash
Гость
« Ответ #4 : Июнь 10, 2011, 11:17 »

В общем немного допилил функцию item, выкладываю если кому понадобится.
Код:
QStandardItem *MyModel::itemMy(QStandardItem *parent,int row, int column) const
{
    if(parent->parent() != NULL)    {
        return parent->parent()->child(row, column);    }
    else    {
        return invisibleRootItem()->child(row, column);
    }
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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