Ограничения размеров виджетов Qt

Мне нужно установить sizepolicy для QWidget, чтобы ширина виджета всегда была кратна 6 при изменении размера в макете (ширина = 6,12,18,24,30,36...), а высота всегда кратна 4. Как я могу это сделать?

1 ответ

Вам необходимо обработать события изменения размера вашего виджета. Либо подкласс виджета и переопределение resizeEvent метод или установить фильтр событий для виджета. В обработчике события resize проверьте текущий размер и исправьте его при необходимости:

QSize size = widget->size();
size.setWidth(qRound(size.width() / 6) * 6);
size.setHeight(qRound(size.height() / 4) * 4);
if (size != widget->size()) {
  widget->resize(size);
}
Другие вопросы по тегам