[Qt5-feedback] QVariant::toString() and custom types

Jerome Vizcaino vizcaino_jerome at yahoo.fr
Sun Jul 17 21:31:07 CEST 2011


There's a good point on having a generic cast operation but I think this is more 
complicated to implement.

QVariant uses templates functions and template specializing to build construct 
and delete helper. I think the same can be done to add toString() fromString() 
features without actually requiring any modification on encapsulated classes (see  
QDataStream or QTextStream operators)

This can lead to :

QString QVariant::toString()
{
	if(m_type >= QVariant::User)
		// cast local pointer to correct encapsulated class
 		// call some specialised template function to do the work
	else
		// keep the good old internal implementation for QVariant native types
}

On Friday 15 July 2011, Konrad Rosenbaum wrote:
> Hi,
> 
> On Thu, July 14, 2011 13:18, Jerome Vizcaino wrote:
> > I use QVariant a lot in Qt4 to store native but also custom types.
> > One thing I find a bit annoying is that there is no way to "extend" the
> > toString() QVariant functionnality.
> > 
> > How about adding some sort of operator (à la QDataStream) that custom
> > types
> > could provide to help QVariant convert to/from string ?
> > 
> > This would be really convienent in order to easily print QVariant without
> > actually knowing if it's custom or native content.
> 
> I have found myself wanting this feature as well. However, I can't think
> of a way to implement this without adding more requirements on classes
> that are compatible with QVariant.
> 
> I.e. it should be done so that classes that cannot be transformed to
> QString (yet) are still storable in QVariant. This seems to require a lot
> of dark magic... ...any ideas?
> 
> 
> 
>     Konrad
> 
> _______________________________________________
> Qt5-feedback mailing list
> Qt5-feedback at qt.nokia.com
> http://lists.qt.nokia.com/mailman/listinfo/qt5-feedback



More information about the Qt5-feedback mailing list