QDialog不会自动缩小以适应其内容

时间:2014-09-16 13:24:31

标签: c++ qt qt4

使用带有动态内容的QDialog时,窗口的大小可能会变得更大,以便更好地适应内容。

但是,在我的情况下,如果内容变小(我的情况下,表单可能因所做的选择而有所不同),我也希望自动减小它的大小。

我该如何达到这种行为?

由于

可以通过添加两个按钮来复制:

void MainWindow::on_pushButton_2_clicked()
{
    for (int i=0; i<12; i++) {
        QPushButton *button = new QPushButton("Blha");
        buttons.push_back(button);
        ui->zone->addWidget(button);
    }
    adjustSize();
}

void MainWindow::on_pushButton_clicked()
{
    for (int i=0; i<10; i++)
    if (buttons.size()) {
        QPushButton *button = buttons.back();
        buttons.pop_back();
        ui->zone->removeWidget(button);
        delete button;
    }
    adjustSize();
}

如果您创建上面的12个按钮然后销毁其中的10个,那么窗口的大小将非常大

1 个答案:

答案 0 :(得分:1)

实际上,我最终通过将我的内容包装在一个小部件(如MainWindow的centralWidget)中并在我的小部件上调用adjustSize()来解决这个问题