Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QTextDocument(和QTextEdit)是否不更新其大小?_C++_Qt_Qtextedit - Fatal编程技术网

C++ QTextDocument(和QTextEdit)是否不更新其大小?

C++ QTextDocument(和QTextEdit)是否不更新其大小?,c++,qt,qtextedit,C++,Qt,Qtextedit,我创建了一个初始化为空的QTextEdit,然后执行以下代码(TE是指向textedit的指针): 通过调试,我看到字符串s设置正确。但是大小\u s仅为0。为什么,以及如何修复。这个被剪掉的东西不应该在任何地方都能用吗?我还尝试添加了一个TE->show()行,以防只在显示小部件时调整大小,但没有效果。原因是什么?更改文档中的文本不会更改文档宽度。从QTextDocument的文档中 可以通过设置文本宽度或设置整个页面大小来更改文档的大小 也许调用d->adjustSize()可以让您到达您想

我创建了一个初始化为空的QTextEdit,然后执行以下代码(TE是指向textedit的指针):


通过调试,我看到字符串
s
设置正确。但是大小
\u s
仅为0。为什么,以及如何修复。这个被剪掉的东西不应该在任何地方都能用吗?我还尝试添加了一个
TE->show()
行,以防只在显示小部件时调整大小,但没有效果。原因是什么?

更改文档中的文本不会更改文档宽度。从QTextDocument的文档中

可以通过设置文本宽度或设置整个页面大小来更改文档的大小


也许调用d->adjustSize()可以让您到达您想要的位置?但是,请注意,更改文档的大小不会更改QTextEdit小部件的大小。

就像有人说的那样,这很奇怪。在那个问题上,我反问了这个问题。我只想找到一种方法来获取小部件中文本的实际大小(给定小部件的宽度和文字包装)。
    TE->setText( "this is a test string, it should have a non zero height");
    auto d(TE->document());
    auto s(d->toPlainText());
    auto _s(d->size());
    auto _h(_s.height());