QStyle Scroll Bars 样式设计(十一)

 

QScrollBars的样式结构:

 

 

 

 

QScrollBar只需创建其样式选项,然后绘制CC_ScrollBar。 有些样式使用PE_PanelButtonBevel绘制添加页面和子页面的背景,还使用指示器箭头在嵌套指示器和前一行指示器中绘制箭头;

我们没有将它们包含在树中,因为它们的使用取决于个人风格。 样式的PM_MaximumDragDistance是鼠标可以从滚动条的边界移动并仍然移动手柄的最大距离(以像素为单位)。

如下是Java样式的滚动条的图像:

 

您可能会注意到,滚动条与Java略有不同,因为它有两个对齐指示器。 我们这样做是为了显示如何为单个子控件具有两个单独的边界矩形。

滚动条是完全由java样式实现的小部件的示例-图形中均不涉及QWindowsStyle和QCommonStyle。

我们来看看滚动条可以在样式选项上设置的不同状态:

StateState Set When
State_Horizontal 滚动条是水平的

 QScrollBar的样式选项是QStyleOptionSlider。 下表列出了其成员。 所有QAbstractSliders都使用该选项。 我们仅在此处描述与滚动条相关的成员。

MemberContent
maximum 滚动条的最大值
minimum 滚动条的最小值
notchTarget 槽口之间的像素数
orientation

Qt :: Orientation枚举的值,它指定滚动条是垂直还是水平

pageStep 在页面上增加或减少滑块值的数量(相对于滑块的大小及其值范围)
singleStep 单(或行)步增加或减少滑块值的数字
sliderValue 滑块的值
sliderPosition 滑块手柄的位置。 如果滚动条是QAbstractSlider :: tracking,则此值与liderValue相同。 如果不是,则滚动条在鼠标释放手柄之前不会更新其值。
upsideDown 保持滚动条增加其值的方向。 用于所有抽象滑块的QStyleOption :: direction。

 

Slider 滑块样式

在计算滑块大小提示时,将从样式中查询PM_SliderTickness和PM_SliderLength。 与滚动条一样,如果鼠标位于滑块边界的PM_MaximumDragDistance内,则QSlider仅允许用户移动手柄。

绘制自身时,它会创建样式选项并使用CC_Slider调用drawComplexControl() 

 

我们还显示了Java样式的滑块图片。 由于所有绘制均在CC_Slider中完成,因此我们显示了子元素的边界矩形。

 

 

 

QSlider像所有QAbstractSliders一样使用QStyleOptionSlider。 我们列出了影响QSlider的成员表:

 

MemberContent
maximum 滑块的最大值
minimum 滑块的最小值
notchTarget 这是每个槽口之间的像素数
orientation 一个Qt :: Orientation枚举值,它给出滑块是垂直还是水平。
pageStep 滑块值中的一个数字,用于增加或减少页面步长
singleStep 单(或行)步增加或减少滑块值的数字。
sliderValue 滑块的值。
sliderPosition 以滑块值形式给出的滑块位置。 如果滑块正在跟踪,则此值等于sliderValue; 如果不是,则在用鼠标释放手柄之前,滑块值不会改变。
upsideDown 对于所有抽象滑块,都使用此成员代替QStyleOption :: direction。

 

注意,滑块不使用方向进行反向布局; 它使用upsideDown。

 

posted @ 2020-11-04 21:42  流浪侠客  阅读(381)  评论(0编辑  收藏  举报