Russian Qt Forum

Qt => Общие вопросы => Тема начата: jaroslav от Август 15, 2013, 21:42



Название: QTreeView запретить сворачивать ветвь
Отправлено: jaroslav от Август 15, 2013, 21:42
Привет! Собственно сабж в названии темы. Как сделать? Пока метода в treeview не нашел.


Название: Re: QTreeView запретить сворачивать ветвь
Отправлено: kambala от Август 15, 2013, 22:50
унаследуйся от QTreeView и возвращай false для нужного индекса в методе bool QTreeView::isIndexHidden ( const QModelIndex & index ) const [virtual protected]


Название: Re: QTreeView запретить сворачивать ветвь
Отправлено: jaroslav от Август 15, 2013, 23:23
пока не пойму как сделать. вот так попробовал:

Код:
bool CMyClassTreeView::isIndexHidden(const QModelIndex &index) const
{
    if (index.data().toString() == "Text"){
        return false;
    }
}

так же должно в принципе работать?


Название: Re: QTreeView запретить сворачивать ветвь
Отправлено: kambala от Август 15, 2013, 23:29
по идее да, только в остальных случаях надо возвращать реализацию базового класса


Название: Re: QTreeView запретить сворачивать ветвь
Отправлено: jaroslav от Август 15, 2013, 23:31
Код:
bool CMyClassTreeView::isIndexHidden(const QModelIndex &index) const
{
    if (index.data().toString() == "Text"){
        return false;
    }
[b]    QTreeView::isIndexHidden(index);[/b]
}

имеется в виду так?

кстати, ее же не нужно юзать где либо? переопределил и все?


Название: Re: QTreeView запретить сворачивать ветвь
Отправлено: kambala от Август 16, 2013, 00:21
да (return QTreeView::isIndexHidden(index);) и да (ну только ж теперь используй свой переопределенный класс вместо QTreeView).


Название: Re: QTreeView запретить сворачивать ветвь
Отправлено: jaroslav от Август 16, 2013, 07:50
ой, точно, не дописал return. да, все так и сделал, пока не работает. разбираюсь в чем дело.