Есть ли способ определить начальный размер для виджета дочернего окна (унаследованного от QMdiSubWindow)? Я не хочу ограничивать минимальный размер или препятствовать его изменению, а просто показывать окно в первый раз с заданным размером.
Я пытался переопределить sizeHint и определить разные политики размера, но даже с этими изменениями вызов autoAjust, кажется, делает окно очень маленьким (размер 200 x 200) при его первом отображении. Окно содержит виджет с этой иерархией: QVBoxLayout -> QScrollArea -> QLabel. QLabel используется для показа изображения размером 512 x 512.
РЕДАКТИРОВАТЬ: Исправьте класс в QMdiSubWindow.
ты можешь использовать изменить размер (int w, int h).
Он не будет устанавливать максимальный и минимальный размер.
Это просто изменит начальный размер дочернего окна.
Ну, на самом деле, это действительно то, что он делает: он изменяет «текущий» размер дочернего окна. Но первый текущий размер — это «начальный» размер. Так что в основном это то же самое.
Насколько мне известно, в Qt нет такой вещи, как QSubWindow.
Тем не менее, вызов setGeometry для QWidget установит его размер.
После долгих поисков ответа и экспериментов я обнаружил, что это работает для меня.
child->parentWidget()->resize(900, 700);
child->parentWidget()->updateGeometry();
child->show();
// child->showMaximized();
Ты можешь использовать showMaximized()
на месте show()
и (900, 700)
будет по-прежнему использоваться, если позднее окно будет изменено на normal
,