Сабж, и к тому же еще несколько вопросов по этой теме:
1. Как программно перевести строку в режим редактирования?
2. Как установить размеры/шрифт/цвет строк в QListView?
3. Если высота всех строк превышает высоту списка (появляется полоса прокрутки), то как показать (сфокусироваться чтоли) невидимую строку?
4. Если длина текста превышает ширину списка (виден не весь текст), то как можно решить эту проблему? Какие у Qt есть решения (бегущая туда-сюда строка, просто перенос слов, ...)?
1. Для этого есть QItemDelegate. У самого вьювера, кажется, есть функция edit()
2. На счёт размеров не знаю, не приходилось. А цвет фона для каждого элемента можно задавать перегрузив в модели data ( const QModelIndex & index, int role = Qt::DisplayRole ). Для role == Qt::BackgroundRole и Qt::FontRole возвращаешь нужные кисть и фонт, завёрнутые в QVariant.
Для отрисовки высот, кажется, есть какой-то флаг у вьювера.
3. scrollTo() тебе в помощь.
4. как вариант, можно в той же модели, в той же data() для Qt::ToolTipRole возвращать текст элемента. Тогда он появится полностью в всплывающей подсказке при наведении мышки на элемент.
В общем, тебе нужно хорошенько почитать про использование модели QAbstractItemModel и её подклассов. Практически все нестандартные решения реализуются через них, а сам вьювер не трогается.