0

我正在这里做一个项目,目前我遇到了以下问题。它是关于一个 QTableView,它有一个名为“Description”的列,该列的单元格包含一个 QPlainTextEditDelegate。每次输入 QPlainTextEdit 时,我都无法设置它的高度。现在,它的行为类似于 QLineEdit,直到我将 QTableView 的行(当时我在其中处于活动状态)拖得更大。

我想要做的是在输入 QPlainTextEdit 后更改它的高度。你有什么建议?我怎样才能继续完成这件事?

谢谢大家!

顺便说一句,对不起我的英语不好:/

编辑:

好的,我解决了,但没有 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>);

不过还是谢谢你!

4

1 回答 1

1

您应该在创建编辑器时重新实现 QAbstractItemDelegate::sizeHint 方法以返回预期的高度。我认为创建编辑器后不需要发出 QAbstractItemDelegate::sizeHintChanged 信号,但文档没有说明任何内容。如果没有它就无法工作,您应该在返回创建的编辑器小部件后发出 sizeHintChanged 以通知视图需要更改行高。

于 2011-09-19T13:46:55.537 回答