У меня есть экземпляр QDialog, заполненный виджетами с использованием кода, сгенерированного uic.Диалог содержит несколько меток, расположенных вертикально, и я время от времени выскакиваю в диалоге, чтобы показать текст в этих метках.Текст может быть многострочным, а его длина не определяется заранее.Я установил фиксированную политику размера по вертикали, чтобы пользователь не мог ее перетаскивать (не имеет смысла), но я также хочу, чтобы диалоговое окно изменило свой размер перед отображением, чтобы приспособиться к текущему размеру меток.
Для этого я вызывал QWidget :: AdjustSize () в QDialog перед его отображением, но он не работает должным образом.Когда отображается диалоговое окно, оно, похоже, сохраняет (неправильный) размер по сравнению с предыдущим отображением, но когда я щелкаю мышью в (отключенном) вертикальном режиме изменения размера, диалоговое окно внезапно «привязывается» к (правильному) отрегулированному размеру.
Есть ли способ, чтобы мой диалог отображался правильно?
РЕДАКТИРОВАТЬ: Я связал совет rubenvb и в итоге получил следующее:
QSizePolicy free(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
QSizePolicy fixed(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
dialog->setSizePolicy(free);
dialog->adjustSize();
dialog->setSizePolicy(fixed);
dialog->show();
К сожалению, это ничего не изменило.