在QTableView中设置QPlainTextEdit委托的高度

时间:2011-09-19 12:38:00

标签: c++ qt delegates qtableview qplaintextedit

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

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

提前谢谢大家!

BTW抱歉,我的英语很差:/

编辑:

好的我解决了它,但没有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 个答案:

答案 0 :(得分:1)

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