Qt5でシンプルなタブ付きインターフェースを実装しようとしています。QToolBars をタブ内に配置して QTabWidget を使用し、QToolBars に QActions を追加します。
以下のツールバーとウィジェットは垂直レイアウト内にあります。ツールバーの高さを、内部に QToolButtons を保持するのに十分な高さに自動サイズ変更したいと思います (最後のものは、アイコン、テキスト、またはその両方 (アイコンの下または右側のテキスト) を表示でき、高さに影響します)。親タブの幅に収まるように、幅を自動調整して、できるだけ多くのツールボタンを表示します。また、親タブの高さを自動的に拡大または縮小して、ツールバーを表示できるようにしたいと考えています。Qtでそれは可能ですか?はいの場合、どのように?
UPDATE1: ツールバーを QTabWidget のタブ ウィジェットとして使用することにより、水平方向の自動ストレッチが既に行われています。しかし、垂直のものはまだありません。重要なコード (QDesigner の場合):
<widget class="QWidget" name="central_widget">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTabWidget" name="tabbed_tool_bar">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<widget class="QToolBar" name="tool_tab_game">
<property name="windowTitle">
<string>Game ToolTab</string>
</property>
<attribute name="title">
<string>&Game</string>
</attribute>
…
</widget>
<widget class="QToolBar" name="tool_tab_movement">
<property name="windowTitle">
<string>Movement ToolTab</string>
</property>
<attribute name="title">
<string>&Movement</string>
</attribute>
…
</widget>
</widget>
</item>
<item>
<widget class="QScrollArea" name="scroll_area">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
…
</widget>
</item>
</layout>
</widget>
現在、ウィンドウが垂直方向にサイズ変更されると、タブ ウィジェットも垂直方向にサイズ変更されます。しかし、含まれているツールバーの高さに応じてのみサイズを変更し、親ウィンドウのサイズが変更されたときにその高さを維持したいと考えています。
UPDATE2: QTabWidget の垂直方向のサイズ ポリシーを Fixed に設定し、垂直方向のサイズ ポリシーの下の QScrollArea を Expanding に設定することで、予想される垂直方向の自動サイズ変更が行われます。上記の UI XML は、それに応じて変更されています。