QTextEdit :: adjustSize()不起作用?

时间:2012-12-13 15:33:38

标签: qt qtextedit

设置QTextEdit的文字:

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

应仅包围“Something”,而QTextEdit正在扩展到其最大宽度 - 高度,无法修复它。 当我在运行时选择“Something”时,只会突出显示“Something”,不会添加额外的空格。

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

如果未调用adjustSize();,则文本将换行在Creator中.ui中设置的宽度,不会水平或垂直地动态展开..

一些信息:

  

横向政策:扩展垂直政策:MinimumExpanding
  minimumSize:2×22
最大尺寸:300×100
lineWrapMode:   WidgetWidth

1 个答案:

答案 0 :(得分:2)

是的,看起来没有简单的方法来计算QTextEdit中的行数 adjustSize()是针对QWidget制作的,并未针对QTextEdit重新实现,而是基于sizeHint()
您可以使用自己的方法来计算行数,例如

  1. 您可以使用QFontMetrics计算文字中每个字词的宽度
  2. 您可以将高度设置为22并将其增加到maximumHeight命中或垂直滚动​​条消失。
  3. 您可以从QTextEdit本身的来源获取一些信息并将其子类化,然后重新实现某些内容(adjustSize()?)。