2016-12-19 9 views
0

Я пытаюсь иметь следующие настройки:Qt 5.7 QDockWidget по умолчанию размера

при запуске (при открытии главного окна) Я хочу иметь 2 QDockWidgets по левой стороне с шириной 400px и высота 1/2 (каждая) из QMainWindows высота. Слева - 3 QDockWidgets с шириной 400 пикселей и высотой 1/3 (каждая) высоты QMainWindows. Все 5 виджетов должны быть изменены.. Это означает, что использование setFixSize() в этом случае не будет работать.

До сих пор я пытался изменить Geometry>Width и Gemetry>Height в конструированном -> не работал.

Затем я попытался использовать resize() в главном окне конструктора, но он тоже не сработал.

Почему не Gemetry>Height/Width и resize() оказывают какое-либо влияние на размер виджетов и как достичь макета главного окна, как описано выше?

ответ

0

Док-виджеты будут добавлены к макету главного окна, поэтому изменение размера будет иметь эффект. Для этого нужно переопределить sizeHint виджета содержимого, который добавляется к каждому виджету док-станции.

Я полагаю, что другой способ взглянуть на это - позволить пользователю упорядочить док-виджеты любым способом, который они предпочитают, а затем использовать saveState и restoreState для управления начальным состоянием.

+0

И если содержание виджета стыковки, например, 'QWebEngineView'? Я не думаю, что унаследовать его только для переопределения 'sizeHint' - хорошая идея, или нет? – carobnodrvo

+0

@carobnodrvo. Просто используйте простой подкласс QWidget в качестве контейнера для вашего реального контента. – ekhumoro

+0

Но мой настоящий контент - 'QWebEngineView'. – carobnodrvo