我正在使用 QT 对 QSlider 进行子类化,现在我想让句柄更大。我使用了 SetStylesheet 并设置了背景颜色和新尺寸。运行时,颜色已设置,但大小似乎是固定的。然而,我可以调整整个 QSlider 的大小:在这种情况下,带手柄的凹槽保持相同的大小,但环绕小部件的区域变得更大。
我怎样才能解决这个问题?此外,是否有每个 QWidget 所具有的组件的概述,以及如何通过样式表调整它们?
谢谢
解决方案似乎是在滑块句柄的样式表中设置负边距。
Change handel size:
aSliderProxy = new SliderProxy();
ui->materialVerticalSlider->setStyle(aSliderProxy);
File sliderproxy.h:
#ifndef SLIDERPROXY_H
#define SLIDERPROXY_H
#include <QProxyStyle>
class SliderProxy : public QProxyStyle
{
public:
int pixelMetric ( PixelMetric metric, const QStyleOption * option = 0, const QWidget * widget = 0 ) const
{
switch(metric) {
case PM_SliderThickness : return 50;
case PM_SliderLength : return 50;
default : return (QProxyStyle::pixelMetric(metric,option,widget));
}
}
};
#endif // SLIDERPROXY_H