gpt4 book ai didi

c++ - 更新 QTextDocument 的大小

转载 作者:行者123 更新时间:2023-11-28 06:05:31 26 4
gpt4 key购买 nike

我对 QTextDocument::size() 有疑问

每次用户手动向 TextEdit 输入内容时,文档的大小都会更新。 (所以在 SIGNAL textChanged 中它工作正常)。但是,我通过代码插入一些文本。

textEdit->insertPlainText("blablablabla\n");

当我使用它时:

int iHeight = textEdit->document()->size().height();

iHeight 始终等于 21,即使 textEdit 有多行文本。当我在我谈到的 SIGNAL 中使用同一行代码时,iHeight 神奇地变成了正确的数字。

所以基本上,我的问题是如何更新文档的大小以便返回正确的数字?

最佳答案

您必须将 QDocuments 的宽度设置为 QTextEdit 的宽度,以让它知道是否有换行符。之后它返回正确的大小。

例子:

QTextEdit textEdit;
textEdit.setMaximumWidth(50);
textEdit.setText("Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test");
textEdit.document()->adjustSize();
QSizeF size1 = textEdit.document()->size();
textEdit.document()->setTextWidth(textEdit.width());
QSizeF sizew = textEdit.document()->size();
textEdit.show();

的确,adjustSize 是不够的。

关于c++ - 更新 QTextDocument 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32467079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com