qt-interest@trolltech.com
[Top] [All Lists]

Re: best way to display currency in QAbstractItemViews?

Subject: Re: best way to display currency in QAbstractItemViews?
From: Kaleb Pederson
Date: Fri, 25 Jul 2008 09:52:39 -0700
On Friday 25 July 2008, Paul Miller wrote:
> I note in QStyledItemDelegate there is a displayText() method, which
> would have been perfect, but there is no QModelIndex passed in so I can
> determine what kind of item it is.

The QModelIndex is passed in via the paint() method, which is const.  The Item 
Delegates are pretty much flyweights with the data being extrinsic.  Thus, 
once it actually comes time to paint the data, you'll have sufficient 
information available.

> You mentioned using a custom role - I've never done this. Would I have
> my delegate query my UserCurrencyRole from the model, and it if it gets
> back a non-null value, assume I can treat the data as currency?

You can use a custom role or a normal role as long as you have sufficient 
information available for the delegate to be able to determine how it should 
be presented and handled.  When you set the data, rather than setting the 
data with DisplayRole or EditRole, you'll just set it with Qt::UserRole + N 
for some value of N.  The custom role is particularly useful if you are 
storing the data as a builtin type such as QString, int or double.

Another possibility, if you have a custom datatype for representing currency, 
is to base the delegate off of that type and register a custom factory so 
that an appropriate editor is created.  See:

http://doc.trolltech.com/4.4/qitemeditorfactory.html

Regards.

--Kaleb

--
To unsubscribe - send a mail to qt-interest-request@xxxxxxxxxxxxx with 
"unsubscribe" in the subject or the body.
List archive and information: http://lists.trolltech.com/qt-interest/

<Prev in Thread] Current Thread [Next in Thread>