[PyQt] question re: QVariant formatting in QTableWidgetItem
Matt Newell
newellm at blur.com
Sun May 11 02:46:06 BST 2008
On Saturday 10 May 2008 11:49:38 Brian Gyss wrote:
> All:
>
> I'm having some issues changing the formatting of a number in a
> QTableWidgetItem. It seems that whenever I feed any sort of number
> with non-zero digits in front of a decimal point into the QVariant
> type, the QTableWidgetItem will always display the formatting to 6
> digits in a specific format.
>
> For example, a number like this:
>
> 10454.450432
>
> will always be depicted like this:
>
> 10,454.4
>
> when the specific item is inserted in a table. Also, I need to use
> QTableWIdgetItem.setData() in order to insert the numeric data or else
> the numbers in the table are not sortable.
>
> Do I have to subclass either QVariant or QTableWidgetItem in order to
> change the formatting of how numbers are depicted inside of
> QTableWidget cells, or is there a more succinct way of doing this?
>
> Thanks!
>
> - Brian
I think you have 2 options.
1) Subclass QTableWidgetItem. override the data function, return a formatted
string for DisplayRole, and float/double for EditRole. You'll also have to
override the operator< to get proper sorting, because I believe the default
implemenation uses the DisplayRole for sorting.
2) Subclass QItemDelegate and have it do the formatting.
#1 is probably easier.
Matt
More information about the PyQt
mailing list