QListViewに問題があり、QListViewの左上に意図しないアイテムがペイントされます。
http://s4.postimage.org/64orbk5kd/Screen_Shot_2013_02_14_at_20_23_14.png
QListViewでQStyledItemDelegateを使用しています:
m_stringList.push_back("FIRST");
m_stringList.push_back("SECOND");
m_stringList.push_back("THIRD");
m_model.setStringList(m_stringList);
ui->processesListView->setFlow(QListView::LeftToRight);
ui->processesListView->setModel(&m_model);
ui->processesListView->setItemDelegate(new ProcessItemDelegate(this, ui->processesListView));
デリゲート(ProcessItemDelegate)ペイントメソッドは、カスタムQWidgetを使用して情報を表示します。
void ProcessItemDelegate::paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex &inIndex ) const
{
_listItem->setContent(_listView->model()->data(inIndex).toString());
painter->save();
painter->translate(option.rect.center());
_listItem->render(painter);
painter->restore();
}
QWidgetのsetContentメソッドは非常に単純です:
void ProcessItem::setContent(const QString &s)
{
ui->processId->setText(s);
}