2011-06-27 163 views
-1

大家好,這裏是我的代碼:調整大小的問題

myplot *p = new myplot(gao.structpayloadgraph, 
         gao1.structpayloadgraph, 
         gao.structcol-2, "payload"); 

ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); 
ui->scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); 
ui->scrollArea->setWidgetResizable(false); 
p->resize(ui->scrollArea->size().width(), ui->scrollArea->size().height()); 

ui->scrollArea->setWidget(p); 

我想p佔用滾動區域的全部可用空間和適合自己。然而,即使我稱之爲調整大小功能,外觀看起來也是「受到擠壓」。我應該怎麼做才能達到預期的效果?

+0

你爲什麼寫'ui-> scrollArea-> setWidgetResizable(false);'? – red1ynx

回答

1

您必須將滾動區域內容小部件視爲正常QWidget。如果你想自動調整大小,你必須使用Qt中的佈局。請嘗試以下操作:

QVBoxLayout layout = new QVBoxLayout(ui->scrollAreaContent); 
layout->setMargin(0); 
layout->setContentsMargins(0,0,0,0); 
layout->setSpacing(0); 
ui->scrollAreaContent->setLayout(layout); 
layout->addWidget(p); 

注:ui->scrollAreaContent是一種猜測,但我認爲你正在使用ui文件和默認內容控件被命名爲這樣的...

0

轉到Qt Creator的右上方設計器屏幕(對象,類),右鍵單擊QScrollArea行並選擇「佈局」菜單項,選擇佈局(例如垂直或水平佈局),確保您的QWidget具有最小或最大尺寸策略。您的滾動小部件現在應該調整佈局大小。