QTreeWidget 根据内容设置每行的高度
我想在 QTreeWidget 中制作具有多行内容的可编辑单元格,为此我使用 QPlainTextEdit 作为委托。我需要为所有行设置适当的大小,以便编辑和显示之间的切换顺利,没有任何明显的变化。
rect = textEdit.blockBoundingRect(textEdit.firstVisibleBlock())
- 有了这个,我可以找出需要为该行设置的高度,但我错过了可以这样做的地方。
如何在初始化阶段为 QTreeWidget 的行设置适当的高度以及如何处理它的更改?
I want to make editable cells with multi-lines content in QTreeWidget and I use for this purpose QPlainTextEdit as a delegate. I need to set proper size to all rows that switching between editing and displaying went smooth, without any visible changes.
rect = textEdit.blockBoundingRect(textEdit.firstVisibleBlock())
- With this I can find out the height I need to set for the row, but I missing the place where I can do it.
How can I set proper height to QTreeWidget's rows on initialization stage and how to handle it's changes?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要重新实现委托的 sizeHint()。它将自动处理行的高度和宽度。
请注意,在这种情况下,QTreeWidget::uniformRowHeight 属性必须为 false,但如果它包含许多行,它会减慢树元素的渲染速度。
You need to reimplement delegate's sizeHint(). It will automatically handle row's height and width.
And note, that QTreeWidget::uniformRowHeight property must be false in this case, though it will slow tree element rendering if it contains many rows.