Название: Ошибка в описании делегата Отправлено: Max Payne от Май 28, 2010, 00:40 Делегирую в QTableView QLineEdit и сразу пытаюсь сделать ее не редактируемой через setEnable(false)
не могу понять почему не работает помогите разобраться.... Описание класа: LineDelegate::LineDelegate(TypeEditor type, QObject *parent) : QItemDelegate(parent) { typeeditor = type; } QWidget *LineDelegate::createEditor(QWidget *parent,const QStyleOptionViewItem &, const QModelIndex &) const { QWidget *editor; switch(typeeditor) { case TLine: { QLineEdit *lin = new QLineEdit(parent); return static_cast<QWidget *>(lin); } } return editor; } void LineDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const { QVariant data = index.model()->data(index, Qt::DisplayRole); switch(typeeditor) { case TLine: { QLineEdit *lin = static_cast<QLineEdit *>(editor); lin->setText(data.toString()); lin->setEnabled(false); break; } } } void LineDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const { QVariant data; switch(typeeditor) { case TLine: QLineEdit *lin = static_cast<QLineEdit *>(editor); data = lin->text(); break; } model->setData(index, data, Qt::EditRole); } void LineDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &/* index */) const { editor->setGeometry(option.rect); } Название: Re: Ошибка в описании делегата Отправлено: Max Payne от Май 28, 2010, 00:42 Через форму эта функция работает, я именно так через форму и делаю...
Чего тут не работает, или тут приоритет Role? Название: Re: Ошибка в описании делегата Отправлено: Max Payne от Май 28, 2010, 00:51 Написал через setReadOnly, работает но проблема в том что ячейка выделяеться но не редактируеться...
Можно сделать чтоб не выделялась... |