QStyle Toolbars 样式设计(二十)
工具栏是主窗口框架的一部分,并在构建样式选项时与其所属的QMainWindow合作。 主窗口有四个可放置工具栏的区域。
它们位于窗口的四个侧面(即北,南,西和东)旁边。 在每个区域内,可以有多于一行的工具栏。 一条线由方向彼此相等(垂直或水平)的工具栏组成。
Qt中的QToolbars由三个元素CE_ToolBar,PE_IndicatorToolBarHandle和PE_IndicatorToolBarSeparator组成。
QMainWindowLayout用于计算边界矩形(即工具栏的位置和大小及其内容。主窗口在计算栏的大小时也使用工具栏中项目的sizeHint()。
这是QToolBar的元素树:
虚线表示QToolBar保留QToolBarLayout的实例,而QToolBarSeparators由QToolBarLayout保留。 当工具栏浮动时(即具有自己的窗口),将绘制PE_FrameMenu元素,否则QToolbar将绘制CE_ToolBar。
这是Java风格的工具栏的图像:
QToolBarSaparator使用QStyleOption作为其样式选项。 如果工具栏所在的工具栏是水平的,它将设置State_horizontal标志。 除此之外,他们使用initFrom()。
QToolBar的样式选项是QStyleOptionToolBar。 如果条是水平的(即在工具栏的北部或南部),则唯一的状态标志集(除了公共标志)是State_Horizontal。 样式选项的成员变量为:
Member | Content |
---|---|
features | 保持条是否在ToolBarFeature的值(可移动或无)中可移动。 |
lineWidth | 工具栏框架的宽度。 |
midLineWidth | 该变量当前未使用,并且始终为0。 |
positionOfLine | 工具栏行在其所属的工具栏区域内的位置。 |
positionWithinLine | 工具栏在工具栏行中的位置。 |
toolBarArea | 工具栏所在的工具栏区域。 |