2016-11-09 9 views
0

私は縦型のレイアウトを持っています。私はファイル名でいっぱいです。 ファイルを選択するQFileDialogを持っていて、レイアウトに名前が追加されています。Qt - アイテムを追加するときのレイアウトのサイズ変更

void convertInterface::on_browseButton_clicked() 
{ 
    fileNames = QFileDialog::getOpenFileNames(this, tr("Open File"), "./FilesToConvert", tr("Test Files (*.txt)")); 
    for each (QString item in fileNames) 
    { 
     QLabel *name = new QLabel(this); 
     name->setText(QFileInfo(item).fileName()); 
     ui.mainLayout->addWidget(name); 
    } 
} 

3つのファイルと結果:

enter image description here

3つの以上のファイルを持つ結果、そう6全

enter image description here

全体レイアウト:

enter image description here

レイアウトのサイズを自動的に変更するにはどうすればよいですか?

答えて

1

最初にを子ウィジェットとしてgroupBoxウィジェットに追加する代わりに、のレイアウトを直接設定してください。オブジェクトインスペクタのgroupBox行を右クリックし、メニューからを選択してください。 - [something]を選択してください。回避策として、ダミーウィジェットを追加し、レイアウトを設定し、ダミーウィジェットを削除するだけで、ウィジェットにチャイルドがない場合、このオプションは使用できない可能性があります。

第2に、親ウィジェットでも何らかの自動レイアウトが必要なので、同じようにcentralWidgetとする必要があります。 groupBoxは必要に応じて自動的に展開されます。

親のレイアウト(centralWidget)を破損した場合、子ウィジェットのサイズは固定され、自動的に更新することはできません。

+0

私の垂直レイアウトは中央レイアウトのグループボックスにあります。私はどうすればいいのですか? – Dinendal

+0

あなたの質問から階層が完全にはっきりしていないので、そこに追加できますか?例えば。 Object Inspectorのスクリーンショット(QtCreator/Designerで開発した場合)がたくさん出てくるでしょう。または、テキストとして指定します。 – yman

+0

画像を追加しました – Dinendal

関連する問題