Qt: Квадратное ограничение на изменение размера окна - PullRequest
4 голосов
/ 21 июля 2009

У меня есть QDockWidget с одним квадратным виджетом внутри. Я хотел бы, чтобы `` QDockWidget имел изменяемый размер, но всегда сохранял квадратную форму, тогда как по умолчанию его можно растянуть непропорционально.

Какую комбинацию политик размера, подсказок по размеру и т. Д. Мне нужно установить для этого?

Ответы [ 2 ]

2 голосов
/ 22 июля 2009

Когда вызывается resizeEvent(), виджет уже имеет новый размер. Таким образом, вызов resize() может привести к мерцанию.

Вы можете попробовать переопределить QWidget::heightForWidth(int); это может работать до тех пор, пока QDockWindow пристыкован, и менеджеры компоновки Qt контролируют его. Но IIRC, по крайней мере на X11, heightForWidth() не работает с виджетами верхнего уровня (окнами).

1 голос
/ 21 июля 2009

Вы должны переопределить resizeEvent.

Вы должны сравнить ширину и высоту в этом методе,

если они не равны, установите для них равные числа, которые вы хотите иметь отношение к ширине или высоте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...