首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整QT的QTextEdit大小以匹配文本宽度

调整QT的QTextEdit大小以匹配文本宽度
EN

Stack Overflow用户
提问于 2014-01-31 04:11:52
回答 1查看 2.9K关注 0票数 3

我有一个QMainWindow,里面有一个QVBoxLayout,里面有一个QTextEdit。我使用insertHtml来处理后者,使用固定的CSS,基本上归结为等宽线条和恒定宽度,所以它应该是可预测的,一旦一行进入,QTextEdit应该有多宽才能显示整个文本。问题是,我不知道怎样才能得到这个宽度。我尝试了很多方法: adjustSize(),获取底层QTextDocument的大小,QFontMetrics (不测量包含样式表修改的类的超文本标记语言),甚至

代码语言:javascript
复制
QFont f("monospace");
QFontMetrics fm(f);
QString s = QString("A").repeated(MyTextWidth);
unsigned NewWidth = fm.width(s)

生成应用于带有setFixedWidth的QTextEdit的值会给出不正确的结果。那么,如何自动设置QTextEdit的宽度(以及拥有它的QMainWindow)以在不使用水平滚动条的情况下显示整行文本?

EN

回答 1

Stack Overflow用户

发布于 2014-01-31 05:18:46

您可以使用QTextDocument::idealWidth来确定实际文本宽度。在查询理想宽度之前,让QTextEdit可见是很重要的。别忘了把内容边距加到它的价值上。

代码语言:javascript
复制
QTextEdit textEdit;
textEdit.setHtml("<p>test test test test test test</p><p>|||||||||</p>");
textEdit.show();
textEdit.setFixedWidth(textEdit.document()->idealWidth() +
                       textEdit.contentsMargins().left() +
                       textEdit.contentsMargins().right());

结果:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21466539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档