2016-11-09 73 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

首先,代替将QVBoxLayout的子部件的groupBox部件,直接设置groupBox的布局。只需右键单击对象检查器中的groupBox行并在菜单中选择排列 - [something]。如果小部件没有孩子,则此选项可能不可用 - 作为解决方法,只需添加一个虚拟小部件,设置布局并删除虚拟小部件。

其次,您还需要父窗口小部件上的某种自动布局,所以请使用centralWidget。比groupBox会根据需要自动扩展。

如果您打破父级的布局(centralWidget),则子部件的大小是固定的,并且不能自动更新。

+0

我的垂直布局位于中央布局的组框中。我应该怎么做? – Dinendal

+0

层级不完全清楚你的问题,你可以在那里添加它吗?例如。 Object Inspector的屏幕截图(如果你在QtCreator/Designer中开发)会说很多。或者指定为文本。 – yman

+0

我已经添加了一张图片 – Dinendal