我正在这里做一个项目,目前我遇到了以下问题。 它是关于一个 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>);
不过还是谢谢你!
最佳答案
您应该重新实现 QAbstractItemDelegate::sizeHint 方法以在创建编辑器时返回预期的高度。我不认为在创建编辑器后发出 QAbstractItemDelegate::sizeHintChanged 信号是必要的,但文档没有说明任何内容。如果没有它就无法工作,您应该在返回创建的编辑器小部件后发出 sizeHintChanged 以通知 View 需要更改行高。
关于c++ - 在 QTableView 中设置 QPlainTextEdit 委托(delegate)的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7471045/