QSlider 增加手柄尺寸

问题描述 投票:0回答:2

如何增加此滑块手柄的高度:

I have slider like this

如图所示:

explanation image

子类化 QAbstractSlider 是唯一的方法吗?

这是我的代码中的样式表:

QSlider::groove:horizontal {
    border: 1px solid #999999;
    height: 32px; /* the groove expands to the size of the slider by default. by giving it a height, it has a fixed size */
    background: qlineargradient(x1:0, y1:0, x2:0, y2:1, 
        stop:0 #B1B1B1, stop:1 #c4c4c4);
    margin: 2px 0; 
}
QSlider::handle:horizontal {
    background: qlineargradient(x1:0, y1:0, x2:1, y2:1, 
        stop:0 #b4b4b4, stop:1 #8f8f8f);
    border: 1px solid #5c5c5c;
    width: 40px;
    margin: -20px 0; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */
    border-radius: 3px;
}
c++ qt qtstylesheets qslider
2个回答
11
投票

使用此样式表:

.QSlider {
    min-height: 68px;
    max-height: 68px;
    background: #5F4141;
}

.QSlider::groove:horizontal {
    border: 1px solid #262626;
    height: 5px;
    background: #393939;
    margin: 0 12px;
}

.QSlider::handle:horizontal {
    background: #22B14C;
    border: 5px solid #B5E61D;
    width: 23px;
    height: 100px;
    margin: -24px -12px;
}

它将产生以下结果:

image

请注意,通过将

min-height
max-height
设置为相同的值,滑块的高度将保持恒定。


2
投票

我将您的确切代码复制到 Qt Designer 中的表单中。滑块手柄看起来足够大。

但是,在添加布局时,整个滑块的尺寸不足以显示完整的手柄。我只是添加了这个:

QSlider {
    height: 80px;
}

得到这个结果:

© www.soinside.com 2019 - 2024. All rights reserved.