Доброго времени суток, необходимо запретить пользователю редактировать кое какие колонки в QTableView , полазил в инете нашел что самый простой способ это переопределить делегата.Создал новый cpp файл, прописал в нем
class NonEditTableColumnDelegate : public QItemDelegate
{
Q_OBJECT
public:
NonEditTableColumnDelegate(QObject * parent = 0) : QItemDelegate(parent) {}
virtual QWidget * createEditor ( QWidget *, const QStyleOptionViewItem &,
const QModelIndex &) const
{
return 0;
}
};
потом в самой программе
NonEditTableColumnDelegate *delegate=new NonEditTableColumnDelegate(this);
ui->sqlTable->setItemDelegateForColumn(0,delegate);
на что qt ругается как то так:
D:\QTprojects\mysqltry\new1.cpp:5: ошибка: undefined reference to `vtable for NonEditTableColumnDelegate'
collect2.exe:-1: ошибка: error: ld returned 1 exit status
и указывает на эту строку:
NonEditTableColumnDelegate(QObject * parent = 0) : QItemDelegate(parent) {}
Заранее спасибо за помощь