QTreeView和委托(
我为自定义图形QTreeWidget或QTreeView创建了此委托 但它不起作用,QTreeView和委托(,qt,delegates,Qt,Delegates,我为自定义图形QTreeWidget或QTreeView创建了此委托 但它不起作用,TimeLineDelegate::paint未被调用 例如,我尝试使用QTreeWidget和QTreeView class TimeLineDelegate : public QItemDelegate { Q_OBJECT public: TimeLineDelegate(QObject *o):QItemDelegate(o){} void paint(QPainter *painter, const Q
TimeLineDelegate::paint
未被调用
例如,我尝试使用QTreeWidget和QTreeView
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);
};
QTreeView*myView=new QTreeView();
TimeLineDelegate*delegat=新的TimeLineDelegate(myView);
myView->setItemDelegate(新建TimeLineDelegate(此));
QStandardItemModel*myModel=新QStandardItemModel();
QStandardItem*parentItem=myModel->invisibleRootItem();
对于(int i=0;i<4;++i){
QStandardItem*项=新QStandardItem(
QString(“项目%0”).arg(i));
parentItem->appendRow(项目);
如果(i==0)
父项=项;
否则{
项目->设置数据(34);
}}
myView->setModel(myModel);
myView->show();
您忘记了const
的paint
方法的说明符。请参见derzai,bud'vnimatlenee:)
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();