我正在使用Qt5.3并尝试样式化一个QSlider
。然而,当我应用我的样式表时,刻度线消失了。有人知道如何保持样式而不影响刻度线吗?
下面是样式表:
QSlider::groove:horizontal
{
border: 1px inset #B0B0B0;
background-color: #EAEAEA;
height: 2px;
}
QSlider::Handle
{
border: 1px solid black;
background: #B0B0B0;
background-image: url(:/metal_background_small);
width: 12px;
margin: -8px 0;
}
QSlider::Handle:Hover
{
border: 1px solid black;
background: #707070;
background-image: url(:/metal_background_small);
}
QSlider::sub-page
{
/* margin: 7px 1px 7px 0px;*/
height: 2px;
background: #05bcfe;
}
2条答案
按热度按时间eqqqjvef1#
Qt样式表和刻度线不能很好地配合使用。最简单的解决方案是子类化
QSlider
并重新实现paint_event。cnh2zyt32#
我不得不修改前面的答案来解释Qt的CSS margin属性(只有当句柄的margin为0时,这个答案才有效),我还需要在绘制滑块和句柄 * 之后 * 绘制刻度,可能是因为它被绘制在刻度的顶部。
绘制刻度时,仅在平移手柄的边距和手柄宽度的一半后才开始绘制。最后一个刻度也必须与滑块右侧保持类似的距离。请参阅:drawing area image .
使用Qt的CSS中定义的边距: