Consumo de memória QTreeView

Estou testando a funcionalidade QTreeView no momento e fiquei impressionado com uma coisa. Parece que o consumo de memória do QTreeView depende da contagem de itens O_O. Isso é altamente incomum, uma vez que os contêineres de visualização de modelo desse tipo apenas controlam os itens que estão sendo exibidos e o restante dos itens está no modelo. Eu escrevi um código a seguir com um modelo simples que não contém dados e apenas relata que possui 10 milhões de itens. Com o MFC, a API do Windows ou a árvore / lista do .NET com esse modelo, não haverá memória, pois exibirá apenas 10 a 20 elementos visíveis e solicitará mais informações sobre o modelo ao rolar / expandir itens. Porém, com o Qt, esse modelo simples resulta em um consumo de memória de ~ 300Mb. O aumento do número de itens aumentará o consumo de memória. Talvez alguém possa me sugerir o que estou fazendo de errado? :)

#include <QtGui/QApplication>
#include <QTreeView>
#include <QAbstractItemModel>

class CModel : public QAbstractItemModel
{
  public: QModelIndex index
  (
    int i_nRow,
    int i_nCol,
    const QModelIndex& i_oParent = QModelIndex()
  ) const
  {
    return createIndex( i_nRow, i_nCol, 0 );
  }

  public: QModelIndex parent
  (
    const QModelIndex& i_oInex
  ) const
  {
    return QModelIndex();
  }

  public: int rowCount
  (
    const QModelIndex& i_oParent = QModelIndex()
  ) const
  {
    return i_oParent.isValid() ? 0 : 1000 * 1000 * 10;
  }

  public: int columnCount
  (
    const QModelIndex& i_oParent = QModelIndex()
  ) const
  {
    return 1;
  }

  public: QVariant data
  (
    const QModelIndex& i_oIndex,
    int i_nRole = Qt::DisplayRole
  ) const
  {
    return Qt::DisplayRole == i_nRole ? QVariant( "1" ) : QVariant();
  }
};

int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  QTreeView oWnd;
  CModel oModel;
  oWnd.setUniformRowHeights( true );
  oWnd.setModel( & oModel );
  oWnd.show();
  return a.exec();
}

questionAnswers(1)

yourAnswerToTheQuestion