QDockWidget начальный размер

Я немного застрял на том, что, как мне кажется, должно быть простой проблемой.

У меня есть QMainWindow с несколькими QDockWidgets. QDockWidget (_tree_dock в моем коде) запускается в LeftDockWidgetArea. Он содержит QWidget (dockWidgetContents_2), который содержит QTreeWidget (_tree_view). Я могу изменять размер / перемещать QDockWidget во время выполнения без каких-либо проблем, однако, когда программа запускается, QDockWidget немного слишком мал.

Я могу немного уменьшить QDockWidget, поэтому знаю, что он не на минимуме (200). Его также можно увеличить, чтобы он не был максимальным. Когда я запускаю Qt Designer, ширина всегда равна 258.

Я добавил несколько отладочных выходов несколькими методами и увидел, что ширина начинается с 200. Затем при вызове changeEvent(QEvent *) ширина внезапно становится 258!

changeEvent () Enter: ширина дока 200, где событие 105

changeEvent () Выход: ширина дока 200, где событие 105

changeEvent () Enter: ширина дока 258, где событие 99

changeEvent () Выход: ширина дока 258, где событие 99

Я поставил вывод в качестве первой и последней строки changeEvent. Согласно документам эти коды событий:

QEvent:: WindowStateChange 105 Состояние окна (свернутое, развернутое или полноэкранное) изменилось (QWindowStateChangeEvent).

QEvent::ActivationChange      99 Состояние активации окна верхнего уровня виджета изменилось.

Я предполагаю, что размер обновляется, как только он будет создан? Я попытался вызвать resize для QDockWidget и QTreeView, но они, похоже, ничего не делают. Или они просто перезаписываются этим размером до 258.

Мне нужно, чтобы ширина была примерно 265. Один из столбцов в древовидной структуре по умолчанию наполовину скрыт. Если нет "простого" способа сделать это, альтернативой будет просто сделать первый столбец немного меньше.

Ниже приведен сегмент файла пользовательского интерфейса с док-станцией.


<widget class="QDockWidget" name="_tree_dock">
   <property name="sizePolicy">
    <sizepolicy hsizetype="Expanding" vsizetype="Ignored">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
   <property name="minimumSize">
    <size>
     <width>200</width>
     <height>216</height>
    </size>
   </property>
   <property name="features">
    <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
   </property>
   <property name="allowedAreas">
    <set>Qt::AllDockWidgetAreas</set>
   </property>
   <property name="windowTitle">
    <string>Objects</string>
   </property>
   <attribute name="dockWidgetArea">
    <number>1</number>
   </attribute>
   <widget class="QWidget" name="dockWidgetContents_2">
    <property name="sizePolicy">
     <sizepolicy hsizetype="Expanding" vsizetype="Ignored">
      <horstretch>0</horstretch>
      <verstretch>0</verstretch>
     </sizepolicy>
    </property>
    <property name="minimumSize">
     <size>
      <width>200</width>
      <height>0</height>
     </size>
    </property>
    <layout class="QVBoxLayout" name="horizontalLayout_5">
     <property name="spacing">
      <number>1</number>
     </property>
     <property name="leftMargin">
      <number>1</number>
     </property>
     <property name="topMargin">
      <number>1</number>
     </property>
     <property name="rightMargin">
      <number>1</number>
     </property>
     <property name="bottomMargin">
      <number>1</number>
     </property>
     <item>
      <widget class="QTreeView" name="_tree_view">
       <property name="sizePolicy">
        <sizepolicy hsizetype="Expanding" vsizetype="Ignored">
         <horstretch>0</horstretch>
         <verstretch>0</verstretch>
        </sizepolicy>
       </property>
       <property name="minimumSize">
        <size>
         <width>200</width>
         <height>0</height>
        </size>
       </property>
       <property name="baseSize">
        <size>
         <width>0</width>
         <height>0</height>
        </size>
       </property>
       <property name="acceptDrops">
        <bool>true</bool>
       </property>
       <property name="dragEnabled">
        <bool>true</bool>
       </property>
       <property name="dragDropMode">
        <enum>QAbstractItemView::DragDrop</enum>
       </property>
       <property name="alternatingRowColors">
        <bool>true</bool>
       </property>
       <property name="selectionMode">
        <enum>QAbstractItemView::ExtendedSelection</enum>
       </property>
       <property name="selectionBehavior">
        <enum>QAbstractItemView::SelectRows</enum>
       </property>
       <property name="indentation">
        <number>16</number>
       </property>
       <property name="rootIsDecorated">
        <bool>true</bool>
       </property>
       <property name="uniformRowHeights">
        <bool>true</bool>
       </property>
       <property name="animated">
        <bool>true</bool>
       </property>
      </widget>
     </item>
    </layout>
   </widget>
  </widget>

0 ответов

Другие вопросы по тегам