I'm studying an easy and fast way to create a pretty ListView where the item is something similar to the "Your Newest Album" of Amarok: a cover and some text on the left.

This is the code I found in the Amarok source code (v1.3)

Qt Code:
  1. void
  2. ContextBrowser::ContructHTMLAlbums(const QStringList & reqResult, QString & htmlCode, QString stID, T_SHOW_ALBUM_TYPE showAlbumType)
  3. {
  4. // This function create the html code used to display a list of albums. Each album
  5. // is a 'toggleable' block.
To copy to clipboard, switch view to plain text mode 

It does some query in the rest of code and it adds the item with lines of code like this.

Qt Code:
  1. // Compilation image
  2. htmlCode.append( QStringx (
  3. "<td width='1'>"
  4. "<a href='fetchcover: @@@ %1'>"
  5. "<img class='album-image' align='left' vspace='2' hspace='2' title='%2' src='%3'/>"
  6. "</a>"
  7. "</td>"
  8. "<td valign='middle' align='left'>"
  9. "<a href='compilation:%4'><span class='album-title'>%5</span></a>" )
  10. .args( QStringList()
  11. << escapeHTMLAttr( reqResult[ i ].isEmpty() ? i18n( "Unknown" ) : reqResult[ i ] ) // album.name
  12. << i18n( "Click for information from amazon.com, right-click for menu." )
  13. << escapeHTMLAttr( albumImage )
  14. << reqResult[ i + 1 ] //album.id
  15. << albumName ) );
To copy to clipboard, switch view to plain text mode 

Why do they create a List in this way?
Can I make my ListView with delegating methods?
Is it possible to put a label and image in an item View entry (and layout)?
Can someone show me a code that shows how to make a pretty ListView?