void echo( const QVariant& var ) { printf( "%s\n", qPrintable( var.toString() ) ); } void echo( const QList& table ) { QString str; foreach( const QVariantList lst, table ) { foreach( const QVariant var, lst ) { str += var.toString() + " "; } echo( str ); } } void echo( const QVariantList& lst ) { if( !lst.isEmpty() && lst[0].canConvert() ) { foreach( const QVariant var, lst ) { echo( var.toList() ); } return; } QString str; foreach( const QVariant var, lst ) { str += var.toString() + " "; } echo( str ); }