День добрый,
Не могу догнать где затупил помогите плиззз
QTableView * tvGU;
GroundUserSqlModel modelGU;
Модель:class GroundUserSqlModel: public QSqlQueryModel
{
Q_OBJECT
public:
GroundUserSqlModel (QObject * parent=0);
QVariant data (const QModelIndex &item, int role) const
{
QVariant value = QSqlQueryModel::data(item,role);
if (role == Qt::DisplayRole && item.column()==2) // отображение данных в таблице
{
switch (value.toInt())
{
case 1:
value = QVariant(QString::fromLocal8Bit("DSP"));
break;
case 2:
value = QVariant(QString::fromLocal8Bit("УВД"));
break;
case 3:
value = QVariant(QString::fromLocal8Bit("Авиакомпания"));
break;
default:
break;
}
}
return value;
}
};
Делегат:class GUDelegate: public QStyledItemDelegate
{
Q_OBJECT
public:
GUDelegate (QObject *p = 0): QStyledItemDelegate(p) {}
protected:
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QStyledItemDelegate::paint(painter,option,index);
}
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QLineEdit * edit = new QLineEdit(parent);
return edit;
}
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
{
QStyledItemDelegate::setModelData(editor,model,index);
}
};
Конструктор: ui->tvGU->setModel(&modelGU);
ui->tvGU->setSelectionBehavior(QAbstractItemView::SelectRows);
ui->tvGU->setItemDelegate(new GUDelegate (ui->tvGU));
ui->tvGU->setEditTriggers(QAbstractItemView::DoubleClicked);
Однако при двойном клике по полю таблицы QLineEdit (поле редактрования) не появляется. Что я забыл?