2013-08-07 5 views

답변

0

서브 클래스 QStyledItemDelegatepaint 기능을 재정의하십시오. 이 항목을 사용하여 항목에 테두리를 페인트합니다. 그런 다음 해당 델리게이트를 QListView에 설정하십시오.

예 :

void MyDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const 
{ 
    if(index.row() == 0) 
    { 
     painter->setPen(QPen(Qt::red, 2)); 
     painter->drawRect(option.rect.x()+1, option.rect.y(), option.rect.width()-1, option.rect.height()); 
    } 
    QStyledItemDelegate::paint(painter, option, index); 
} 

그리고 set the delegate for your QListView에 : 당신은 necessarely 페인트 기능에 행을 확인하지 않아도

listView->setItemDelegate(new MyDelegate); 

. 할 수 있습니다. set the delegate for a specific row :

listView->setItemDelegateForRow(0, new MyDelegate);