Установка высоты делегата QPlainTextEdit в QTableView - PullRequest
0 голосов
/ 19 сентября 2011

Я работаю здесь над проектом, и в настоящее время я застрял в следующей проблеме.Речь идет о QTableView, который имеет столбец с именем «Описание», ячейки этого столбца содержат QPlainTextEditDelegate.Я не могу установить высоту QPlainTextEdit каждый раз, когда он вводится.Прямо сейчас он ведет себя как QLineEdit, пока я не перетаскиваю строку (в которой я активен в то время) QTableView больше.

Что я хочу сделать, это изменить высоту QPlainTextEdit после того, как я вошелЭто.Каковы ваши предложения?Как я могу приступить к этой вещи?

Спасибо всем заранее!

BTW Извините за мой плохой английский: /

edit:

Хорошо, я решил это, но без sizeHint, я использовал updateEditorGeometry:

void updateEditorGeometry( QWidget* editor, const QStyleOptionViewItem & option, const QModelIndex & index ) const;

И в этом методе вы можете установить ширину или высоту так, как вы хотите

editor->setGeometry(option.rect.x(),option.rect.y(),<your_width>,<your_height>);

Но все равно спасибо!

1 Ответ

1 голос
/ 19 сентября 2011

Вам следует переопределить метод QAbstractItemDelegate :: sizeHint для возврата ожидаемой высоты при создании редактора.Я не думаю, что необходимо создавать сигнал QAbstractItemDelegate :: sizeHintChanged после создания редактора, но документация ничего не говорит.Если это не работает без него, вы должны запустить sizeHintChanged после возврата созданного виджета редактора, чтобы уведомить представление о необходимости изменения высоты строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...