Как заставить QDockWidget расширяться при изменении размеров окна? - PullRequest
0 голосов
/ 25 февраля 2012

У меня есть простая форма: 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>

1 Ответ

0 голосов
/ 25 февраля 2012

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

...