2014-04-08 8 views
0
class TimeLineDelegate : public QItemDelegate 
{ 
Q_OBJECT 
public: 
TimeLineDelegate(QObject *o):QItemDelegate(o){} 
void paint(QPainter *painter, const QStyleOptionViewItem &option, 
    const QModelIndex &index); 
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index); 
}; 

나는 QTreeWidget 또는 QTreeView 그리기 사용자 지정이 대리자를 생성하지만 당신은 const를 잊어QTreeView 위임 (

QTreeView *myView = new QTreeView(); 
TimeLineDelegate *delegat = new TimeLineDelegate(myView); 
myView->setItemDelegate(new TimeLineDelegate(this)); 

QStandardItemModel *myModel = new QStandardItemModel(); 
QStandardItem *parentItem = myModel->invisibleRootItem(); 
for (int i = 0; i < 4; ++i) { 
    QStandardItem *item = new QStandardItem(
     QString("item %0").arg(i)); 
    parentItem->appendRow(item); 
    if (i == 0) 
     parentItem = item; 
    else { 
     item->setData(34); 
    }} 
    myView->setModel(myModel); 

    myView->show(); 

답변

0

예를 들어, TimeLineDelegate::paint 내가 QTreeWidget과 QTreeView으로 시도 를 호출되지 않습니다 작동하지 paint 메서드에 대한 지정자입니다. full signature

+0

감사합니다. bratishka – user3510417

+0

derzai, bud 'vnimatelnee :) –