【发布时间】:2010-04-16 14:14:58
【问题描述】:
我在 QTreeWidget 中调整行高时遇到了一些问题。我将 QStyledItemDelegate 与 QPlainTextEdit 一起使用。在 QPlainTextEdit 中编辑文本期间,我通过以下方式检查更改:
rect = self.blockBoundingRect(self.firstVisibleBlock())
如果文本的高度发生变化,我会调整编辑器的大小,并且 QTreeWidget 中的行也需要调整大小。但我不知道如何通知 TreeWidget 或代表有关更改。我试图用索引初始化编辑器,我可以在将来使用它,但是 Delegate 每次都会创建新的编辑器并且我没有使用信号。我还使用以下函数来捕获调整大小事件,但它没有:
bool QAbstractItemDelegate::editorEvent ( QEvent * event, QAbstractItemModel * model, const QStyleOptionViewItem & option, const QModelIndex & index )
如何使用 TreeWidget 绑定编辑器的大小变化?
还有一件事,默认情况下,TreeWidget 中的所有项目(单元格)都具有 -1 或某个较大的值作为默认宽度。我需要单元格中的整个文本可见,那么如何仅通过可见范围限制单元格宽度并使其在高度上扩展?我希望它与 MSWord 中的表格具有相同的行为。
提前谢谢你, 塞尔吉
【问题讨论】: