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

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

每当我将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的错误?在过去的几天里,我一直在撞墙,我的搜索没有透露任何有用的信息。

c++ qt slider qslider
1个回答
0
投票

填充对于句柄来说太高了:如果设置的值高于凹槽属性中图像的大小,则会干扰处理程序的移动(抓取部分将为空)。

当我设置宽度为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";
© www.soinside.com 2019 - 2024. All rights reserved.