为什么QTextEdit有时文档高度为0?

时间:2014-03-17 14:42:56

标签: qt

对于QTextEdit * te我注意到有时te->document()->size()会返回(0,0),有时会返回实际大小。在这两种情况下,te->toPlainText()都会返回非空文本。

返回尺寸可以做些什么? 是否有一些刷新方法,所以文件肯定会返回它之后的大小?

2 个答案:

答案 0 :(得分:1)

尝试在检查尺寸之前调用QApplication::processEvents()。它将导致处理所有待处理的Qt事件,因此在此调用之后将更新所有大小。请注意,不可见文档仍可能无法返回正确的大小。

答案 1 :(得分:0)

计算文本的布局是繁重的操作,特别是当文本很长时,所以必须尽可能地延迟。我非常确定你在施工时间的某个地方得到零尺寸。

如何克服这个问题?
最好的方法是延迟初始化。在某些值需要继电器之前不要执行计算(正确执行此操作,您将永远不会获得零尺寸) 其他方法是强制计算文档布局。您可以致电setTextWidth()setPageSize()idealWidth(),具体取决于您的任务背景。

idealWidth()非常完美,如果你不换行并且没有页面大小。