我想顯示一個可滾動列表中的簡短html片段列表。因此,我把一個QVboxLayout成QScrollArea並添加多個QTextBrowsers:如何使QTextBrowser在QVBoxLayout中很好地縮放?
#include <QApplication>
#include <QScrollArea>
#include <QTextBrowser>
#include <QVBoxLayout>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QScrollArea scrollArea;
scrollArea.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
scrollArea.setWidgetResizable(true);
QWidget *scrollWidget = new QWidget;
QVBoxLayout *layout = new QVBoxLayout;
for(int i=0;i<6;i++) {
QString text = "some <b>text</b> ";
for(int j=0;j<i;j++) text += text;
QTextBrowser *browser = new QTextBrowser();
QTextDocument *doc = new QTextDocument(browser);
doc->setHtml(text);
browser->setDocument(doc);
layout->addWidget(browser);
}
scrollWidget->setLayout(layout);
scrollArea.setWidget(scrollWidget);
scrollArea.show();
return app.exec();
}
我的問題:這些盒子都具有相同的尺寸。我希望他們儘可能的大,但不是更大。我如何讓文本瀏覽器只佔用他們真正需要的空間?
嗯,我沒有看到任何結果的視覺變化。使用addWidget這種方式仍然使得vbox中的所有小部件具有相同的大小。有些比他們需要的更大,因爲他們只保留幾個文本,有些不夠大,並使用垂直滾動條。 – Till 2011-04-08 11:30:58
試試這個:browser-> setSizePolicy(SizePolicy :: Fixed); – 2011-04-08 11:47:05
這使得所有嵌入式TextBrowser都被固定在256x256的固定大小上,甚至更糟糕。 – Till 2011-04-08 12:05:01