QDialog не уменьшает автоматически, чтобы соответствовать его содержанию

0

При использовании 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 из них, размер окна будет действительно большим

  • 0
    Вы пробовали метод resize() ? изменить размер окна, как вы хотите, когда окно должно быть больше, и изменить размер, когда окно должно быть меньше.
  • 0
    На самом деле, adjustSize() будет делать эту работу, но она здесь не работает. Похоже, дети не полностью настроены или что-то в этом роде.
Показать ещё 4 комментария
Теги:
qt
qt4

1 ответ

1

Фактически, я в конце концов решил это, обернув мое содержимое в виджет (например, CentralWidget MainWindow) и вызвав adjustSize() в моем виджете

Ещё вопросы

Сообщество Overcoder
Наверх
Меню