2011-06-27 8 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は、スクロールバー領域の完全な利用可能なスペースを取ると自分自身に合うようにしたいです。しかし、私がresize関数を呼び出したにもかかわらず、外観は「絞り込まれた」ように見えます。希望の効果を達成するために私は何をすべきですか?

+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ファイルとデフォルトのコンテンツのウィジェットを使用していると思う... QTクリエーターの右上に

0

ゴーQScrollArea行を右クリックして「Lay Out」メニュー項目を選択し、レイアウトを選択します(縦または横のレイアウトなど)。QWidgetが最小サイズ以上のサイズのポリシーを持っていることを確認してください。スクロールウィジェットがレイアウトのサイズを変更するようになりました。