Qt - 如何使QTextBrowser调整大小到内容(垂直布局)

时间:2014-08-28 15:25:31

标签: html qt resize

我的对话框中有一个QTextBrowser对象,它会写入HTML。它与其他几个对象呈垂直布局。我将垂直大小策略设置为此QTextbrowser的MinimumExpanding。问题是如果写入浏览器的HTML最终高于QTextBrowser的最小设置高度,它的高度保持不变,而是让我向下滚动浏览器以查看所有数据,我希望它在哪里而是一次显示所有数据。我已经尝试改变QTextBrowser的大小策略及其所在的布局,但我尝试过的任何工作都没有。有没有办法做到这一点,我忽略了?

2 个答案:

答案 0 :(得分:1)

如果你知道要添加多少行,那么你可以计算一个高度,然后设置那个高度。

int number_of_lines; // If you can get this value from somewhere this should work

// Get the height of the font being used
QFontMetrics font_metrics(ui->text_browser->font());
int font_height = font_metrics.height();

// Get the height by multiplying number of lines by font height, Maybe add to this a bit for a slight margin?
int height = font_height * number_of_lines;

// Set the height to the text broswer
ui->text_browser->setMinimumHeight(height);
ui->text_browser->setMaximumHeight(height);

答案 1 :(得分:0)

QTextBrowser  *m_text=new QTextBrowser;
m_text->setFixedHeight(m_text->document()->size().height());

希望能帮助你。