[Qt-interest] Fwd: Fwd: decoration role for the tree model subclass
Scott Aron Bloom
scott at sabgroup.com
Wed Dec 17 17:08:00 CET 2008
most of the calls into the model come from views and delegates.
Put a break point in your data method, eventually it will get called with a request for the decoration role
-Scott
--Sent from my mobile device--
-----Original Message-----
From: "ami guru" <dosto.walla at gmail.com>
Date: Wednesday, Dec 17, 2008 5:09 am
Subject: [Qt-interest] Fwd: Fwd: decoration role for the tree model subclass
To: qt-interest at trolltech.com
Hello Sebastian,
I did according to your hint.
But the icon is not showing up along with the item name.
I think the reason is that data() function is called with display role by default.
How to call that with the decoration role?
I would to understand the function call hierarchy in the model that i have created
The manual says that for creating a tree model we have to subclass the QAbstractItemModel and must
reimplement some of the functions. I would like to see how these over-ridden functions are called.
Only then i would probably be able to track and call the data() with the decoration role.
What do you think?
Regards
Sajjad
---------- Forwarded message ----------
From: Sebastian Fischer <creat at gmx.net>
Date: Wed, Dec 17, 2008 at 6:37 AM
Subject: Re: [Qt-interest] Fwd: decoration role for the tree model subclass
To: ami guru <dosto.walla at gmail.com>
Hi,
below is your data() function adapted to correctly handle the decoration role.
This funtion serves as the source of all information about the item referenced to by the given index. You already handle the Qt::DisplayRole and just have to expand it for the Qt::DecorationRole, since the type of data requested from the view is defined in the role variable, like so:
<<< BEGIN CODE >>>
QVariant H3DTreeModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid())
return QVariant();
H3DTreeItem *item = static_cast<H3DTreeItem*>(index.internalPointer());
if (role == Qt::DisplayRole)
return item->data(index.column());
else if (role == Qt::DecorationRole)
return item->icon();
else
return QVariant();
}
<<< END CODE >>>
Obviously H3DTreeItem need a (new) member function returning a QIcon (or just can get the icon from somewhere else).
You might want to read through this, the 'Item Roles' section in particular:
http://doc.trolltech.com/4.4/model-view-model.html
Bye,
Sebastian Fischer
on 17.12.2008 at 01:19 you wrote:
hello ,
do i have to overload the data() function for Qt::DecorationRole ?
The link you provided did not make much sense to me
Could you please provide more reference to that?
Regards
Sajjad
More information about the Qt-interest-old
mailing list