El portapapeles no es un ente abstracto donde todo tenga cabida de cualquier forma. Para guardar una estructura tienes que "preparar" el contenido de la estructura de alguna forma que te permita luego recuperar los valores.
En el caso de texto, una opción puede ser usar un separador:
Código C++:
Ver originalvoid copiar( )
{
QClipboard *clipboard = QApplication::clipboard( );
QString alPortapapeles = nombre + "\t" + apellidos + "\t" + QString::number( dni );
clipboard->setText( alPortapapeles );
}
void pegar( )
{
const QClipboard *clipboard = QApplication::clipboard( );
const QMimeData *mimeData = clipboard->mimeData( );
if ( mimeData->hasText( ) )
{
QString delPortapapeles = clipboard->text( );
QStringList listado = delPortapapeles.split( '\t' );
nombre = listado.at( 0 );
apellidos = listado.at( 1 );
dni = listado.at( 2 ).toInt( );
}
}