Qt Designer: проблема с изменением размера формы
Приветствую. Видимо что-то накосячил с лэйаутами, из-за чего неправильно изменяется размер окна. То есть еняется размер самого окна (в моем случае QMainWindow), но виджеты внутри несжимаемы, и не дают полностью нормально уменьшить размер окна. Подскажите пожалуйста, в чем косяк? Сама форма: https://pastebin.com/xtKv9Fch

Sunderland93 ★★★★★
21.01.23 11:39:06 MSK
- Ответить на это сообщение
- Ссылка
Свойства главного окна MainWindow :
- sizePolicy установить Expanding
- minimumSize уменьшить
- maximumSize увеличить
Сейчас minimumSize == maximumSize , вот и не меняется ничего.
DrBrown ★
( 21.01.23 12:20:19 MSK )
- Ответить на это сообщение
- Показать ответ
- Ссылка

Параметры minimumSize и maximumSize либо сбрось в Qt Creator в дефолтные значения, либо задай там адекватные ситуации размеры. При сброшенном minimumSize форма сама расчитает минимальный размер на основе элементов на форме.
P.S. Твоя форма ещё не user-friendly для устаревших разрешений монитора вида 1366×766, по высоте точно будет вылетать за границы. Имеет смысл чуть уменьшить высоту.
EXL ★★★★★
( 21.01.23 12:29:36 MSK )
- Ответить на это сообщение
- Показать ответ
- Ссылка
Ответ на: комментарий от DrBrown 21.01.23 12:20:19 MSK

minimumSize
на 0, теперь вот это https://imgur.com/a/3EyWUjV мне нужно чтобы окно можно было ужимать до самых крошечных (насколько это возможно) значений, чтобы оно нормально умещалось при тайловом размещении
Sunderland93 ★★★★★
( 21.01.23 13:31:45 MSK ) автор топика
- Ответить на это сообщение
- Показать ответы
- Ссылка
Ответ на: комментарий от Sunderland93 21.01.23 13:31:45 MSK

Если минимальное значение поставить больше нуля, а максимальное не трогать, тогда проблема исчезает. Но есть чувство костыльности
Sunderland93 ★★★★★
( 21.01.23 13:44:40 MSK ) автор топика
- Ответить на это сообщение
- Ссылка
Ответ на: комментарий от EXL 21.01.23 12:29:36 MSK

Я выставил максимально возможное минимальное значение для QMainWindow и QCentralWidget на нем. Если ставить 0, то остается описанная проблема. Если слишком низкое — начинают сжиматься кнопки
Sunderland93 ★★★★★
( 21.01.23 13:53:12 MSK ) автор топика
- Ответить на это сообщение
- Ссылка
Ответ на: комментарий от Sunderland93 21.01.23 13:31:45 MSK

теперь вот это https://imgur.com/a/3EyWUjV мне нужно чтобы окно можно было ужимать до самых крошечных (насколько это возможно) значений, чтобы оно нормально умещалось при тайловом размещении
Это похоже на какие-то баги в WM, к сожалению. На Windwows и Ubuntu подобного не наблюдаю.
Есть вариант, что у тебя просто расчётное значение minimalSize для формы при 0x0 выходит больше той половинки экрана которую ты используешь в тайлинге, поэтому оно так и выглядит.
Обычно все эти значения minimalSize и maximumSize на корневой форме не трогают, там всё должно работать автоматом.
Без тайлинга этот баг проявляется?
EXL ★★★★★
( 21.01.23 15:10:56 MSK )
- Ответить на это сообщение
- Показать ответ
- Ссылка
Ответ на: комментарий от EXL 21.01.23 15:10:56 MSK

Без тайлинга этот баг проявляется?
Проверил в KDE — нет, там окно нормально ресайзится до минимально возможного размера виджетов. Похоже на баг в Sway. Потому что в KDE Kwin дает окно уменьшить мышкой до вдвое меньшего размера, чем его минимальный размер в Sway при minumumSize 0
Sunderland93 ★★★★★
( 22.01.23 14:33:52 MSK ) автор топика
- Ответить на это сообщение
- Ссылка
Изменить размеры окна

На главном окне MainWindow есть кнопка. Нужно удлинить главное окно при нажатии на эту кнопку. Как это сделать?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Размеры окна
Доброго времени суток. Имеется ApplicationWindow — в нём 2 поля TextField с intValidator’ами и.
Размеры окна
Здравствуйте, такая проблемка — нужно чтобы окно открывалось на весь экран. .
Размеры окна
Здравствуйте, возник вопрос про размеры окон. Размеры окна я могу узнать методами size() и pos(). .

Как установить размеры окна?
Здравствуйте, как установить размеры главного окна ? Любого , MainWindow к nримеру
561 / 484 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
Вызвать метод окна setFixedSize ( int w, int h ) в слоте обработки нажатия на кнопку.
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
фиксированных размеров лучше избегать — тогда уж resize
596 / 396 / 79
Регистрация: 23.10.2013
Сообщений: 1,143
setGeometry()
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Как узнать размеры окна?
Есть такой код в конструкторе главного окна: QPushButton *but = new QPushButton("Кнопка", this); .
Как установить размеры окна программно?
Как установить размеры окна MainWindow (QMainWindow) программно?
Как сделать размеры элементов окна относительными?
Как сделать размеры элементов окна относительными? (чтобы при разворачивании на весь экран элементы.
Как изменить размеры элементов в Layout
Всем привет! На данный момент у меня есть следующий код: QVBoxLayout* vLayout = new.
Как изменить размеры окна браузера?
Как ни пытаюсь изменить ширину окна ничего не выходит $(document).ready(function()
Необходимо изменить размеры окна консоли
Приветствую. Необходимо изменить размеры окна консоли, допустим, на 50 * 50 средствами WinAPI.
Или воспользуйтесь поиском по форуму:
Qt как задать размер окна
На этом шаге мы методы, используемые для изменения размеров окна .
resize (< Ширина >, < Высота >) — изменяет текущий размер окна. Если содержимое окна не помещается в установленный размер, то размер будет выбран так, чтобы компоненты поместились без искажения при условии, что используются менеджеры геометрии. Следовательно, заданный размер может не соответствовать реальному размеру окна. Если используется абсолютное позиционирование, то компоненты могут оказаться наполовину или полностью за пределами видимой части окна. В качестве параметра можно также указать экземпляр класса QSize из модуля QtCore . Пример:
window.resize (100, 70) window.resize (QtCore.QSize(100, 70))
window.setGeometry (100, 100, 100, 70) window.setGeometry (QtCore.QRect(100, 100, 100, 70))
window.setFixedSize (100, 70) window.setFixedSize (QtCore.QSize(100, 70))
window.setMinimumSize (100, 70) window.setMinimumSize (QtCore.QSize(100, 70))
window.setMaximumSize (100, 70) window.setMaximumSize (QtCore.QSize(100, 70))
window.setBaseSize (500, 500) window.setBaseSize (QtCore.QSize(500, 500))
На следующем шаге мы перечислим методы, используемые для получения размеров окна .
Как в QT сделать увеличение компонентов вместе с увеличением окна пропорционально?

Как уже было написано, можете использовать компоновщики (layout), компоновать элементы по горизонтали/вертикали/сетке; есть еще такая штука как layoutStretch, сам не пользовался, но согласно докам — Stretch factors are used to change how much space widgets are given in proportion to one another.; также чтобы размеры виджета изменялись/оставались прежними, используйте sizePolicy (горизонтальную/вертикальную).
На самый худой конец, можете задавать новые размеры виджетов на форме, переопределив resizeEvent().
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Linux
- +1 ещё
Как сделать многопоток сокетов?
- 1 подписчик
- 5 часов назад
- 60 просмотров