2014-08-28 49 views
0

我有我的对话,这将有HTML写入一个QTextBrowser对象。它与其他几个物体处于垂直布局。对于此QTextbrowser,我的垂直尺寸策略目前设置为MinimumExpanding。问题在于,如果写入浏览器的HTML比QTextBrowser的最小设置高度高,它的高度保持不变,它会让我向下滚动浏览器以查看所有数据,而我希望它显示所有数据数据一次。我试图改变QTextBrowser的大小政策和它的布局,但我没有尝试过的任何工作。有没有办法做到这一点,我俯瞰?Qt的 - 如何让QTextBrowser调整到内容(垂直布局)

+0

一个QTextBrowser扩大您填写它更多的想法似乎很奇怪我的,肯定只是做,如果你不想滚动它做大,但滚动似乎是一个非常正常的预期行为如果超越文本的大小限制浏览器 – AngryDuck 2014-08-28 15:31:57

+0

那么这是否是你想要的东西,你键入完成或可以在完成键入框后调整大小?因为在知道将要包含的行数后,您可以非常轻松地设置QTextbrowser的高度?事实上,你甚至可以这样做,因为你沿着行,但可能看起来有点关闭 – AngryDuck 2014-08-28 15:36:18

+0

@AngryDuck没有任何东西被用户输入到框中,它从网页中检索一个html表并显示它,它只是过程中检索它曾经那么就需要一旦它被设置为浏览器的HTML,以适应该表的高度 – thnkwthprtls 2014-08-28 15:38:36

回答

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); 
+0

谢谢,这确实帮助,可惜给浏览器的空间,现在是真正的大-_-我想我可以只用数字鼓捣了一下直到一个得到它的权利,虽然 – thnkwthprtls 2014-08-28 18:07:19

+0

嗯应该只是检查你的行数等是正确的,但不担心它的你如何设置反正就那么像你说的补锅匠一点,应该罚款 – AngryDuck 2014-08-29 07:59:21

+0

实际上它变成了新的问题是从别的东西,这个工作:) – thnkwthprtls 2014-08-29 12:14:01

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

希望能帮助你。