对于QTextEdit * te
我注意到有时te->document()->size()
会返回(0,0),有时会返回实际大小。在这两种情况下,te->toPlainText()
都会返回非空文本。
返回尺寸可以做些什么? 是否有一些刷新方法,所以文件肯定会返回它之后的大小?
答案 0 :(得分:1)
尝试在检查尺寸之前调用QApplication::processEvents()
。它将导致处理所有待处理的Qt事件,因此在此调用之后将更新所有大小。请注意,不可见文档仍可能无法返回正确的大小。
答案 1 :(得分:0)
计算文本的布局是繁重的操作,特别是当文本很长时,所以必须尽可能地延迟。我非常确定你在施工时间的某个地方得到零尺寸。
如何克服这个问题?
最好的方法是延迟初始化。在某些值需要继电器之前不要执行计算(正确执行此操作,您将永远不会获得零尺寸)
其他方法是强制计算文档布局。您可以致电setTextWidth()
,setPageSize()
或idealWidth()
,具体取决于您的任务背景。
idealWidth()
非常完美,如果你不换行并且没有页面大小。