QScrollBar 样式表调整大小句柄

Tha*_*lia 1 qt qtstylesheets

我需要像图像中那样设置一些滚动条的样式:

在此处输入图片说明

经过大量的痛苦和实验,我找到了如何制作渐变并隐藏箭头。

m_scrollBarStyleSheet = "QScrollBar:horizontal { \n "
                "  background-color: qlineargradient(x1: 1, y1: 0.5, x2: 0, y2: 0.5, stop: 0 magenta, stop: 1 #FFFFFF); \n "
                "  border: 1px solid black; \n"
                "  height: 35px; \n "
                "  width: 261px; \n"
                "  margin: 0 0 0 0; \n "
                "} \n "
                "QScrollBar::handle:horizontal { \n"
                "  background-color: silver; \n"
                "  border: 1px solid grey; \n"
                "  height: 55px; \n" // seems to do nothing
                "  width: 2px; \n"   // seems to do nothing
                "} \n"
                "QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { \n" // hides arows
                "  border: none; background: none; \n"
                "} \n"
                "QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { \n" // makes background show through
                "  border: none; \n"
                "} \n";

QString s = m_scrollBarStyleSheet;
s.replace("magenta", "yellow"); // whatever color I need
horizontalScrollBar->setStyleSheet(s);
...
Run Code Online (Sandbox Code Playgroud)

结果:足够接近:

在此处输入图片说明

但是我所做的一切似乎都不允许我调整实际滚动块的大小(手柄?) - 我不能让它变薄,而且我还没有看到任何可以使它的高度超过后面矩形高度的东西。

如何调整小滑动矩形的大小以尽可能适合所需的图像?

注意我必须使用 Qt 4.8

Tha*_*lia 5

我发现QScrollBar手柄宽度不能改变,它是按条形的百分比计算的。

所以,我用一个滑块替换了滚动条,它也能够让句柄高度超过栏的总宽度:通过设置负边距。

(我用这个例子来更新我的问题的风格)。