【发布时间】:2014-01-30 20:11:52
【问题描述】:
我有一个 QMainWindow,它有一个 QVBoxLayout,里面有一个 QTextEdit。我对后者使用 insertHtml 和一个固定的 CSS,它基本上归结为具有恒定宽度的等宽行,所以它应该是可预测的,一旦输入一行,QTextEdit 应该有多宽才能显示整个文本。问题是,我不知道如何获得那个宽度。我尝试了很多东西:adjustSize(),获取底层 QTextDocument 的大小,QFontMetrics(不测量具有由样式表修改的类的 HTML),甚至做
QFont f("monospace");
QFontMetrics fm(f);
QString s = QString("A").repeated(MyTextWidth);
unsigned NewWidth = fm.width(s)
产生一个值,该值应用于带有 setFixedWidth 的 QTextEdit 会给出不正确的结果。 那么如何在不使用水平滚动条的情况下自动设置 QTextEdit 的宽度(以及拥有它的 QMainWindow)以显示整行文本?
【问题讨论】: