Есть делегат в котором в качестве редактора использую виджет с QLineEdit:
TypeEditor::TypeEditor(QWidget *parent)
: QWidget(parent)
{
edit = new QLineEdit(this);
QIntValidator *iv = new QIntValidator(edit);
edit->setValidator(iv);
QHBoxLayout *layout = new QHBoxLayout;
layout->setMargin(0);
layout->setSpacing(0);
layout->addWidget(edit);
setLayout(layout);
this->edit->installEventFilter(this);
}
Суть проблемы в том, что строки в таблице по высоте больше чем стандартный размер QLineEdit, и когда редактируешь ячейку, то получается что едит висит посередине ее(ячейки), что не очень красиво...
Пробовал делать так:
void PTypeDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option,
const QModelIndex &index) const
{
editor->setGeometry(option.rect);
TypeEditor *ed = qobject_cast<TypeEditor *>(editor);
ed->edit->resize(option.rect.width(), option.rect.height());
}
Но это не помогает.....
помогло ed->edit->setFixedHeight(option.rect.height());