Как изменить размер QMainWindow после удаления всех DockWidgets?

Я пытаюсь создать приложение, состоящее из QMainWindow , центральным виджетом которого является QToolBar (это может быть необычно, но для моей цели хорошо подходит панель инструментов). Доки разрешены только ниже. Я добавил к нему QDockWidget , а QAction на QToolBar включает и выключает QDockWidget с помощью removeDockWidget () и restoreDockWidget () .

Размер по умолчанию QMainWindow составляет 800 на 24, QToolBar maximumHeight также установлено значение 24. Сразу после вызова removeDockWidget () , геометрия QMainWindow возвращается к (0,0,800,24) с помощью setGeometry () .

Я хочу изменить высоту QMainWindow до 24 после удаления DockWidget . setGeometry () , кажется, работает, так как ширина и позиция меняются соответственно, но, как ни странно, высота не меняется. И в этом моя проблема :)

Что ты думаешь?

Вот скриншот , иллюстрирующий возникшую проблему.

NB: если я создам тот же сценарий, используя QWidget, а не QMainWindow и используя show () или hide () на дочернем виджете, тогда я могу без проблем изменить размер родителя с помощью adjustSize () : кажется проблема здесь выше специфична для QMainWindow.

6
задан Benjamin 17 August 2011 в 20:11
поделиться