как установить размер новому окну

Чтобы открывающееся окно могло установить само себе размер - это задача не тривиальная.

Как правило нам надо установить размер больше чем по умолчанию, чтобы показать все элементы на экране.

Как известно в Qt такое возможно через использование setMinimumSize. Это железно всегда сработает при вызове adjustSize() окну в его же конструкторе.

Примечание: переопределение sizeHint не поможет решить задачу в случае например с QDialog. Он все равно откроется не такой как надо.

Но как далее также разрешить пользователю изменение размера окна, а именно его уменьшение.

Ответ как ни странно есть. Сначала в конструкторе окна установать требуемое setMinimumSize(...).

Потом при вызове exec() или show() окна скинуть minimumSize ( setMinimumSize(QSize(0,0)) ), чтобы пользователь смог изменять размер окна по своему усмотрению.

И это сработает!

Сначала пользователь увидит окно требуемого размера (чтобы все максимально удобно отображалось), а потом через справа внизу Grip-ом сможет поиграть размером окна.

Также можно запоминать размер окна измененный пользователем и при открытии в следующий раз восстанавливать ему его предыдущий размер.

Очень полезная идея.

Реализовано например в нашей программе БИТ драйвер ККТ.