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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QStandardItemModel и QTreeView?  (Прочитано 11373 раз)
EhTemka
Гость
« : Май 28, 2007, 21:04 »

Привет !

   Что-то никак не пойму как соединить QStandardItemModel и QTreeView.
Чёртова жара :shock:

    Подскажите пожалуйста.
Записан
SABROG
Гость
« Ответ #1 : Май 28, 2007, 21:42 »

Примеров же докучи. метод setModel используй для экземпляра QTreeView. Чтобы работать с элементами используй уже везде свой указатель на QStandardItemModel и заполняй ее QStandardItem'ами. Чтобы добавить ребенка к родительскому узлу, берешь свой экземпляр QStandardItem и вызываешь в нем метод insertRow. Это добавит строки именно к твоему родителю. Если QTreeView многоколончатый (о сказал то!), то вместо insertRow используешь setChild с указанием конкретной колонки.
Записан
EhTemka
Гость
« Ответ #2 : Май 28, 2007, 22:45 »

Вот пишу такой код

Код:
viewTest_ = new QTreeView(this);
model_ = new GuiModelTree(viewTest_);  // от QStandardItemModel
model_->setDataModel();
viewTest_->setModel(model_);


    и что-то ничего не показывает...

добавлено спустя 6 минут:

 вот setDataModel()

Код:
void GuiModelTree::setDataModel()
{
     for (int i = 0; i < 10; ++i) {
        int countRow = rowCount();
        if (countRow == 0) {
            insertRows(countRow, 1);
        } else {
            QModelIndex ind = index(countRow - 1, 0);
            insertRows(countRow, 1, ind);
        }
        QModelIndex ind = index(countRow, 0);
        setData(ind, true, Qt::DisplayRole);                                            
    }
}


не пойму что не так :cry:
Записан
Вячеслав
Гость
« Ответ #3 : Май 28, 2007, 23:07 »

А чего хочеться-то ?

RTFM Подмигивающий
Код:

An example usage of QStandardItemModel to create a table:
 QStandardItemModel model(4, 4);
 for (int row = 0; row < 4; ++row) {
     for (int column = 0; column < 4; ++column) {
         QStandardItem *item = new QStandardItem(QString("row %0, column %1").arg(row).arg(column));
         model.setItem(row, column, item);
     }
 }

и
Код:

An example usage of QStandardItemModel to create a tree:
 QStandardItemModel model;
 QStandardItem *parentItem = model.invisibleRootItem();
 for (int i = 0; i < 4; ++i) {
     QStandardItem *item = new QStandardItem(QString("item %0").arg(i));
     parentItem->appendRow(item);
     parentItem = item;
 }



работают в лоб Подмигивающий Ы ?

добавлено спустя 2 минуты:

  А вообще-то текст у тебя хде ? Строки ты создал, а элементы ?
Записан
EhTemka
Гость
« Ответ #4 : Май 28, 2007, 23:23 »

элементы:
  QModelIndex ind = index(countRow, 0);
   setData(ind, true, Qt::DisplayRole);

  Я может чего-то не доганяю. У меня Qt 4.1.4

  Я пользуюсь QModelIndex-ами, Ни каких QStandardItem-мов нихде не нахожу. Но вообще вопрос не в том. Как создать модель QStandardItemModel понятно. Не понятно как дерево сделать

Метод  insertRows ( int row, int count, const QModelIndex & parent = QModelIndex() ) при назначении парента возвращает false... и никак
Записан
Вячеслав
Гость
« Ответ #5 : Май 28, 2007, 23:35 »

Да это с 4.2.0 проявилось Подмигивающий Но про версию никто не говорил Подмигивающий
Код:

An example usage of QStandardItemModel to create a tree:
        QStandardItemModel *model = new QStandardItemModel();
        QModelIndex parent;
        for (int i = 0; i < 4; ++i) {
            parent = model->index(0, 0, parent);
            model->insertRows(0, 1, parent);
            model->insertColumns(0, 1, parent);
            QModelIndex index = model->index(0, 0, parent);
            model->setData(index, i);
        }

это из 4.1.4
Заметь , тут колонки тож добавляються ... Не оно ?
Записан
EhTemka
Гость
« Ответ #6 : Май 28, 2007, 23:39 »

Усё разобрался... тупил по страшному. Сорри

Это всё жара... :shock:

добавлено спустя 1 минуту:

 спасиб!!!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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