При использовании 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 из них, размер окна будет действительно большим
Фактически, я в конце концов решил это, обернув мое содержимое в виджет (например, CentralWidget MainWindow) и вызвав adjustSize()
в моем виджете
resize()
? изменить размер окна, как вы хотите, когда окно должно быть больше, и изменить размер, когда окно должно быть меньше.adjustSize()
будет делать эту работу, но она здесь не работает. Похоже, дети не полностью настроены или что-то в этом роде.