QTextEdit :: adjustSize()不起作用?

Noo*_*oob 5 qt qtextedit

设置文本QTextEdit:

te->setPlainText(“Something”) ;
te->adjustSize();
Run Code Online (Sandbox Code Playgroud)

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

期望:当文本足够小以适合一行时,文本编辑的高度不应扩展,当文本需要换行时,只应添加额外的行宽而不是最大宽度.

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

一些信息:

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

小智 2

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

  1. 您可以用来QFontMetrics计算文本中每个单词的宽度
  2. 您可以将高度设置为 22 并递增它,直到达到最大高度或垂直滚动​​条消失。
  3. 您可以从其自身的源中获取一些信息QTextEdit并将其子类化,adjustSize()在那里重新实现某些内容(?)。