5

设置文本QTextEdit

te->setPlainText(“Something”) ;
te->adjustSize();

应该只环绕“Something”,而不是QTextEdit扩展到其最大宽度-高度,无法修复它。当我在运行时选择“Something”时,只有“Something”被突出显示,没有添加额外的空格。

期望:当文本小到足以容纳一行时,文本编辑不应该在高度上扩展,当文本需要换行时,应该只添加额外的线宽而不是最大宽度。

如果adjustSize();没有被调用,文本将在 Creator 中的 .ui 中设置的宽度上换行,不会水平或垂直动态扩展..

一些信息:

水平策略:扩展
垂直策略:MinimumExpanding
minimumSize:
最大 2×22 Size:300×100
lineWrapMode:WidgetWidth

4

1 回答 1

2

是的,看起来没有简单的方法来计算QTextEdit.
adjustSize()是为 设计的QWidget,不是为 重新实现的QTextEdit,它基于sizeHint().
您可以使用自己的方法来计算行数,fe

  1. 您可以QFontMetrics用来计算文本中每个单词的宽度
  2. 您可以将高度设置为 22 并增加它,直到最大高度被击中或垂直滚动​​条消失。
  3. 您可以从自身的来源获取一些信息QTextEdit并将其子类化,在那里重新实现某些东西(adjustSize()?)。
于 2012-12-13T17:34:43.313 回答