设置凹槽背景时,QSlider不可拖动

时间:2019-03-12 15:33:44

标签: c++ qt slider qslider

每当我将QSlider的凹槽设置为图像(作为图像或背景图像)或背景颜色(而不是颜色)时,都无法拖动它,而只能通过单击滑块来移动它以步进它。这是我当前的样式表供参考,可以通过调用setStyleSheet()来设置。

    fanSliderOnStyleSheet = "QSlider {padding-left: 80px; padding-right: 80px;} \n"
    "QSlider::handle:horizontal{image: url(:/images/FanSlider/blowerSw2.png); padding:-65px; }\n"
    "QSlider::groove:horizontal{background-image: url(:/images/FanSlider/barind.png);}\n";

如果我注释掉设置凹槽的那条线,则滑块将按预期工作,因此我消除了想到的滑块的任何其他变量。

注意:我更喜欢将其设置为背景图像而不是图像,因为如果这样做,它可以保持真实尺寸。

有人对如何解决此问题有任何想法,还是Qt的一个错误?在过去的几天里,我一直在撞墙,而我的搜索没有发现任何有用的信息。

1 个答案:

答案 0 :(得分:0)

对于手柄来说,填充太高:如果在groove属性中设置的值大于图像的大小,则会干扰处理程序的移动( 区域为空)。

将宽度设置为100px且填充属性设置为110px的图像时,我会遇到完全相同的问题。

删除填充,应该可以:

fanSliderOnStyleSheet = "QSlider {padding-left: 80px; padding-right: 80px;} \n"
    "QSlider::handle:horizontal{image: url(:/images/FanSlider/blowerSw2.png);}\n"
    "QSlider::groove:horizontal{background-image: url(:/images/FanSlider/barind.png);}\n";