Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Karl-Philipp от Сентябрь 26, 2007, 12:53



Название: требуется узнать уровень дерева, на котором находится курсор
Отправлено: Karl-Philipp от Сентябрь 26, 2007, 12:53
Здравствуйте,
у меня задача: есть дерево (QTreeView) в нем два уровня, необходимо сделать так, чтобы можно было узнать, на каком из уровней находится курсор (какой из уровней выделен)?

Для создания модели делаю:

Код:
ItemModel::ItemModel(QObject *parent)
     : QStandardItemModel(parent)
{
QStandardItem *parentItem = this->invisibleRootItem();

firstLevel = new QStandardItem(QString("Level #1"));
parentItem->appendRow(firstLevel);
parentItem = firstLevel;

secondLevel = new QStandardItem(QString("Level #1"));
parentItem->appendRow(secondLevel);
parentItem = secondLevel;

}

В классе QStandardItem нашел метод void QStandardItem::setData ( const QVariant & value, int role = Qt::UserRole + 1 )  [virtual], возможно с помощью него нужно делать. Но никак не могу разобраться с этим методом. Подскажите, пожалуйста, что делать?


Название: Re: требуется узнать уровень дерева, на котором находится курсор
Отправлено: Emc от Сентябрь 26, 2007, 14:36
QModelIndex index = treeView->currentIndex();
QStandardItem* item = model->itemFromIndex(index);//текущий элемент
if (!item->parent()){} //top level
else{} //second level


Название: Re: требуется узнать уровень дерева, на котором находится курсор
Отправлено: Karl-Philipp от Сентябрь 26, 2007, 16:19
большое спасибо! :)