QWidget, когда кнопка setMaximumSize Maximize не работает

У меня есть QWidget с горизонтальной компоновкой, которая содержит QScrollArea. Когда я добавляю виджет в QScrollArea, я изменяю максимальный размер контейнера QWidget следующим образом:

this->setMaximumSize(newWidget->maximumWidth(), newWidget->maximumHeight());

Максимальный размер хорошо изменился, но кнопка максимизации больше не работает. Я могу изменить размер виджета с помощью мыши, но не с помощью кнопки максимизации.

Если я установлю максимальный размер с более высоким значением, например:

this->setMaximumSize(newWidget->maximumWidth() * 2, newWidget->maximumHeight() * 2);

Кнопка максимизации работает хорошо.

Заранее спасибо.


person gutiory    schedule 16.04.2013    source источник
comment
Является ли QWidget верхним уровнем? Можете ли вы изменить его размер, чтобы он заполнил экран, или он останавливается на максимальном установленном вами размере?   -  person cmannett85    schedule 16.04.2013
comment
Да, это топ-уровень. И он останавливается на установленном максимальном размере, но только при использовании мыши.   -  person gutiory    schedule 16.04.2013


Ответы (1)


Вы установили максимальный размер меньше, чем размер вашего рабочего стола. Поэтому, когда вы пытаетесь развернуть виджет, вы просите виджет превысить установленный вами максимальный размер, поэтому он игнорирует вас.

Предположительно newWidget->maximumWidth() * 2 работает, потому что эта цифра больше, чем размер вашего рабочего стола.

person cmannett85    schedule 16.04.2013
comment
Да, ты прав. Но ширина рабочего стола 1280, и я хочу, чтобы максимальная ширина моего окна была 889. Итак, если текущий размер моего окна 300, могу ли я использовать кнопку максимизации, чтобы установить ширину 889? - person gutiory; 16.04.2013
comment
Нет, максимизация окон не означает «установить максимально возможный размер», это состояние среды рабочего стола, которое вы эффективно отключили, остановив рост окна до размера, достаточного для стыковки с краями экрана. - person cmannett85; 16.04.2013
comment
Большое спасибо. Еще одна вещь, у вас есть какие-либо идеи для решения моей проблемы? - person gutiory; 16.04.2013
comment
Почему вы ограничиваете размер окна? Весь смысл области прокрутки в том, чтобы позволить объекту любого размера поместиться в окне. Другой альтернативой является использование области прокрутки в QDialog, чтобы вы могли скрыть кнопку максимизации. - person cmannett85; 16.04.2013
comment
Я ограничиваю размер окна, потому что не хочу, чтобы окно было больше, чем оно есть. - person gutiory; 17.04.2013