更新 QTextDocument 的大小
Update QTextDocument's size
我对 QTextDocument::size()
有疑问
每次用户在 TextEdit 中手动输入内容时,文档的大小都会更新。 (所以在 SIGNAL textChanged 中它工作正常)。但是,我通过代码插入了一些文本。
textEdit->insertPlainText("blablablabla\n");
当我使用这个时:
int iHeight = textEdit->document()->size().height();
iHeight 始终等于 21,即使 textEdit 有多行文本。当我在我谈到的 SIGNAL 中使用同一行代码时,iHeight 神奇地变成了正确的数字。
所以基本上,我的问题是如何更新文档的大小,使其 returns 正确的数字?
如果在插入纯文本后调用_text->document()->adjustSize();
,那么您可以获得正确的高度。
你必须将QDocuments的宽度设置为QTextEdit的宽度,让它知道是否有换行符。之后 returns 大小合适。
示例:
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 不够用。
我对 QTextDocument::size()
有疑问每次用户在 TextEdit 中手动输入内容时,文档的大小都会更新。 (所以在 SIGNAL textChanged 中它工作正常)。但是,我通过代码插入了一些文本。
textEdit->insertPlainText("blablablabla\n");
当我使用这个时:
int iHeight = textEdit->document()->size().height();
iHeight 始终等于 21,即使 textEdit 有多行文本。当我在我谈到的 SIGNAL 中使用同一行代码时,iHeight 神奇地变成了正确的数字。
所以基本上,我的问题是如何更新文档的大小,使其 returns 正确的数字?
如果在插入纯文本后调用_text->document()->adjustSize();
,那么您可以获得正确的高度。
你必须将QDocuments的宽度设置为QTextEdit的宽度,让它知道是否有换行符。之后 returns 大小合适。
示例:
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 不够用。