简单的功能区:自动调整工具栏和选项卡

时间:2016-02-27 14:20:09

标签: qt qlayout qtabbar qtoolbar

我试图用Qt5实现简单的标签界面。我使用QTabWidget和QToolBars放在其标签中,我将QActions添加到QToolBars:

link

下面的工具栏和小部件位于垂直布局中。我希望自动调整工具栏的高度,使其高度足以将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>&amp;Game</string>
     </attribute>
     …
    </widget>
    <widget class="QToolBar" name="tool_tab_movement">
     <property name="windowTitle">
      <string>Movement ToolTab</string>
     </property>
     <attribute name="title">
      <string>&amp;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>

目前,当垂直调整窗口大小时,Tab窗口小部件也会垂直调整大小。但我希望它只能根据所包含的工具栏来调整大小。高度,并在调整父窗口大小时保持其高度。

UPDATE2:预期的垂直自动调整是通过将QTabWidget vertical sizepolicy设置为Fixed,将QScrollArea设置为垂直大小策略以扩展来完成的。现在相应地修改了上面列出的UI XML。

0 个答案:

没有答案