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>