Как заставить QDockWidget расширяться при изменении размера окна?

У меня простая форма: QDockWidget справа, QGroupBox слева от QMainWindow. QGroupBox выкладывается с использованием вертикальной компоновки.

Я хочу, чтобы QDockWidget расширялся и занимал все свободное место при увеличении или максимизации главного окна.

Как это сделать?

Ниже приведен исходный код моего файла .ui.

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>653</width>
    <height>381</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <widget class="QGroupBox" name="groupBox">
      <property name="title">
       <string>GroupBox</string>
      </property>
     </widget>
    </item>
   </layout>
  </widget>
  <widget class="QDockWidget" name="dockWidget">
   <attribute name="dockWidgetArea">
    <number>2</number>
   </attribute>
   <widget class="QWidget" name="dockWidgetContents"/>
  </widget>
 </widget>
 <resources/>
 <connections/>
</ui>

person Dmitriy    schedule 25.02.2012    source источник


Ответы (1)


Вам потребуется заново реализовать QWidget::changeEvent (или resizeEvent для изменения размера), чтобы реагировать на QEvent::WindowStateChange. Если произойдет одно из этих событий, получите QWidget::windowState и измените размер дока на то, что вы хотите.

person pmr    schedule 25.02.2012
comment
Спасибо, а как изменить размер виджета в доке? resize ( int, int ) не помогает. Изменение размераockWidgetContents также не помогает. - person Dmitriy; 29.02.2012