c++ - QDialog 不会自动缩小以适应它的内容

标签 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个,窗口的尺寸会很大

最佳答案

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

关于c++ - QDialog 不会自动缩小以适应它的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25870012/

相关文章:

C++ 变量在 While 循环中不更新

c++ - 添加 Q_OBJECT 宏在 QThread 继承类中给出 "unresolved external error"

c++ - 是否可以让 QT Creator 自动将变量添加到 .pro 文件中

c++ - QTabWidget 选项卡上下文菜单

c++ - 在应用程序中隐藏 MySQL 凭据

python - 添加一条边时使boost图只包含两个顶点

qt - 用 Qt 图像替换一些文本

c++ - 将 QComboBox 与 QSqlQueryModel 一起使用

c++ - OFDM 频谱整形窗口

c++ - windows下如何设置Qt程序的图标?