2014-08-28 67 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()); 

希望能幫助你。