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创建了此委托,但它不起作用,例如,使用QTreeWidget和QTreeView时,不调用TimeLineDelegate::paint。
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();发布于 2014-04-08 10:52:43
您忘记了const方法的说明符。请参阅全签名
https://stackoverflow.com/questions/22934380
复制相似问题