c++ - 更新 QTextDocument 的大小

标签 c++ qt size qtextdocument

我对 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/

相关文章:

c++ - 在分析 boost::graph 时,是否对顶点和边描述符或它们的迭代器进行操作?

c++ - 覆盆子 : Qt issue connecting device because SSH client-server capabilities don't match

c++ - .cpp,v 扩展名的文件

windows - $$PWD 不再适用于 Qt Creator 2.6

c++ - 在特定的 cmake 目标之前运行 npm 命令

c++ - 使用 std::getline c++ 函数时遇到问题

linux - libCGAL_Qt5 缺少依赖项

C strcpy 是如何工作的,它会改变原始字符串的大小吗?

ios - iTunes Connect 中的 App Store 文件大小警告

android - 我可以在 Android 操作系统应用程序中使用的数据库大小是否有限制?