我试图用Qt5实现简单的标签界面。我使用QTabWidget和QToolBars放在其标签中,我将QActions添加到QToolBars:
下面的工具栏和小部件位于垂直布局中。我希望自动调整工具栏的高度,使其高度足以将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>
目前,当垂直调整窗口大小时,Tab窗口小部件也会垂直调整大小。但我希望它只能根据所包含的工具栏来调整大小。高度,并在调整父窗口大小时保持其高度。
UPDATE2:预期的垂直自动调整是通过将QTabWidget vertical sizepolicy设置为Fixed,将QScrollArea设置为垂直大小策略以扩展来完成的。现在相应地修改了上面列出的UI XML。