Начальный размер для QMdiSubWindow

Есть ли способ определить начальный размер для виджета дочернего окна (унаследованного от QMdiSubWindow)? Я не хочу ограничивать минимальный размер или препятствовать его изменению, а просто показывать окно в первый раз с заданным размером.

Я пытался переопределить sizeHint и определить разные политики размера, но даже с этими изменениями вызов autoAjust, кажется, делает окно очень маленьким (размер 200 x 200) при его первом отображении. Окно содержит виджет с этой иерархией: QVBoxLayout -> QScrollArea -> QLabel. QLabel используется для показа изображения размером 512 x 512.

РЕДАКТИРОВАТЬ: Исправьте класс в QMdiSubWindow.

1

Решение

ты можешь использовать изменить размер (int w, int h).
Он не будет устанавливать максимальный и минимальный размер.
Это просто изменит начальный размер дочернего окна.
Ну, на самом деле, это действительно то, что он делает: он изменяет «текущий» размер дочернего окна. Но первый текущий размер — это «начальный» размер. Так что в основном это то же самое.

1

Другие решения

Насколько мне известно, в Qt нет такой вещи, как QSubWindow.

Тем не менее, вызов setGeometry для QWidget установит его размер.

0

После долгих поисков ответа и экспериментов я обнаружил, что это работает для меня.

child->parentWidget()->resize(900, 700);
child->parentWidget()->updateGeometry();
child->show();
// child->showMaximized();

Ты можешь использовать showMaximized() на месте show() и (900, 700) будет по-прежнему использоваться, если позднее окно будет изменено на normal,

-1
По вопросам рекламы [email protected]